local dkjson = require "dkjson" local jsonPath = "/etc/orthanc/lua/test.json" function ReadFile(path) local file = assert(io.open(path, "r")) local content = file:read("*all") file:close() return content end function OnStablePatient(patientId) -- Récupérer les infos du patient local patientInfo = RestApiGet("/patients/" .. patientId) local jsonPatientInfo = dkjson.decode(patientInfo) local name = jsonPatientInfo.MainDicomTags.PatientName or "UNKNOWN" print("Nom du patient : " .. name) -- Éviter l’anonymisation en boucle if string.match(name, "^Anonymized") then print("Patient déjà anonymisé, traitement ignoré.") return end -- Lire le profil d'anonymisation JSON local jsonProfile = ReadFile(jsonPath) -- Récupérer les instances du patient local instancesListRaw = RestApiGet("/patients/" .. patientId .. "/instances") local instancesList = dkjson.decode(instancesListRaw) -- Pour chaque instance : for _, instance in ipairs(instancesList) do print("Anonymisation de l’instance : " , instance.ID) local success, anonymized = pcall(function() return RestApiPost("/instances/" .. instance.ID .. "/anonymize",jsonProfile) end) print(anonymized) print(success) if success and anonymized then print("Instance anonymisée avec succès.") -- Supprimer l’instance originale si tu veux -- RestApiDelete("/instances/" .. instance.ID) else print("Erreur d'anonymisation sur l’instance " .. instance.ID .. " : " .. tostring(anonymized)) end end end