def handle(self, *args, **options): dcmTree = '/neuro/users/chris/data' if len(args) == 2: if args[0] == 'path': dcmTree = args[1] #for dossier, sous_dossiers, fichiers in os.walk('/neuro/users/yann.mallegol/Documents/internship/chris-db/python_test/dicoms'): for dossier, sous_dossiers, fichiers in os.walk(dcmTree): for fichier in fichiers: fullpath = os.path.join(dossier, fichier) if fichier.endswith('.dcm'): print(fullpath) ds = pydicom.read_file(fullpath) test_SeriesInstanceUID=str(ds.SeriesInstanceUID) test_StudyInstanceUID=str(ds.StudyInstanceUID) test_PatientID=str(ds.PatientID) #print(test_SeriesInstanceUID) #print(test_StudyInstanceUID) #print(test_PatientID) #print('azur') search1 = Series.objects.all().filter(SeriesInstanceUID=test_SeriesInstanceUID) #print(search1) search2 = Study.objects.all().filter(StudyInstanceUID=test_StudyInstanceUID) #print(search2) search3 = Patient.objects.all().filter(PatientID=test_PatientID) #print(search3) #earch_test = Series.objects.get(SeriesInstanceUID=test_SeriesInstanceUID) #print(search) if search1.exists(): print('series already exists') #on fait rien, la SeriesInstanceUID existe deja elif search2.exists(): # la SeriesInstanceUID existe pas et StudyInstanceUID existe deja #creation de toutes les tables sauf 'Patient' et 'Study' ####################### Series table ###################### try: SeriesNumber=ds.SeriesNumber except NameError: SeriesNumber = 'undefined' except AttributeError: SeriesNumber = 'undefined' try: SeriesInstanceUID=str(ds.SeriesInstanceUID) except NameError: SeriesInstanceUID = 'undefined' except AttributeError: SeriesInstanceUID = 'undefined' try: ProtocolName=ds.ProtocolName except NameError: ProtocolName = 'undefined' except AttributeError: ProtocolName = 'undefined' try: Modality=ds.Modality except NameError: Modality = 'undefined' except AttributeError: Modality = 'undefined' try: SeriesDescription=ds.SeriesDescription except NameError: SeriesDescription = 'undefined' except AttributeError: SeriesDescription = 'undefined' try: SeriesTime=ds.SeriesTime except NameError: SeriesTime = 'undefined' except AttributeError: SeriesTime = 'undefined' try: ContrastAgent=ds.ContrastAgent except NameError: ContrastAgent = 'undefined' except AttributeError: ContrastAgent = 'undefined' try: ScanningSequence=ds.ScanningSequence except NameError: ScanningSequence = 'undefined' except AttributeError: ScanningSequence = 'undefined' try: BodyPartExaminated=ds.BodyPartExaminated except NameError: BodyPartExaminated = 'undefined' except AttributeError: BodyPartExaminated = 'undefined' try: AcquisitionNumber=ds.AcquisitionNumber except NameError: AcquisitionNumber = 'undefined' except AttributeError: AcquisitionNumber = 'undefined' b3=Series(SeriesNumber=SeriesNumber,SeriesInstanceUID=SeriesInstanceUID,ProtocolName=ProtocolName,Modality=Modality, SeriesDescription=SeriesDescription,SeriesTime=SeriesTime,ContrastAgent=ContrastAgent,ScanningSequence=ScanningSequence, BodyPartExaminated=BodyPartExaminated,AcquisitionNumber=AcquisitionNumber,study=search2.first()) b3.save() ############ MR_Params table ############## try: PixelSpacing=ds.PixelSpacing except NameError: PixelSpacing = 'undefined' except AttributeError: PixelSpacing = 'undefined' try: SliceThickness=ds.SliceThickness except NameError: SliceThickness = 'undefined' except AttributeError: SliceThickness = 'undefined' try: EchoTime=ds.EchoTime except NameError: EchoTime = 'undefined' except AttributeError: EchoTime = 'undefined' try: EchoNumbers=ds.EchoNumbers except NameError: EchoNumbers = 'undefined' except AttributeError: EchoNumbers = 'undefined' try: InversionTime=ds.InversionTime except NameError: InversionTime = 'undefined' except AttributeError: InversionTime = 'undefined' try: RepetitionTime=ds.RepetitionTime except NameError: RepetitionTime = 'undefined' except AttributeError: RepetitionTime = 'undefined' b4=MR_Params(PixelSpacing=PixelSpacing,SliceThickness=SliceThickness,EchoTime=EchoTime,EchoNumbers=EchoNumbers, InversionTime=InversionTime,RepetitionTime=RepetitionTime, modality_params= b3) b4.save() ############# US_Params ############### try: Name=ds.Name except NameError: Name = 'undefined' except AttributeError: Name = 'undefined' b5=US_Params(Name=Name,modality_params=b3) b5.save() ################ CT_Params #################### try: Name=ds.Name except NameError: Name = 'undefined' except AttributeError: Name = 'undefined' b6=CT_Params(Name=Name,modality_params=b3) b6.save() elif search3.exists(): #la SeriesInstanceUID existe pas et StudyInstanceUID existe pas et PatientID existe #creation de toutes les tables sauf 'Patient' ################## Study table #################### try: StudyDescription=ds.StudyDescription except NameError: StudyDescription = 'undefined' except AttributeError: StudyDescription = 'undefined' try: StationName=ds.StationName except NameError: StationName = 'undefined' except AttributeError: StationName = 'undefined' try: ManufacturerModelName=ds.ManufacturerModelName except NameError: ManufacturerModelName = 'undefined' except AttributeError: ManufacturerModelName = 'undefined' try: StudyInstanceUID=str(ds.StudyInstanceUID) except NameError: StudyInstanceUID = 'undefined' except AttributeError: StudyInstanceUID = 'undefined' try: Pathology=ds.Pathology except NameError: Pathology = 'undefined' except AttributeError: Pathology = 'undefined' try: StudyDate=ds.StudyDate except NameError: StudyDate = 'undefined' except AttributeError: StudyDate = 'undefined' try: StudyTime=ds.StudyTime except NameError: StudyTime = 'undefined' except AttributeError: StudyTime = 'undefined' try: AccessionNumber=ds.AccessionNumber except NameError: AccessionNumber = 'undefined' except AttributeError: AccessionNumber = 'undefined' try: InstitutionName=ds.InstitutionName except NameError: InstitutionName = 'undefined' except AttributeError: InstitutionName = 'undefined' try: ReferringPhysicianName=ds.ReferringPhysicianName except NameError: ReferringPhysicianName = 'undefined' except AttributeError: ReferringPhysicianName = 'undefined' try: PerformingPhysicianName=ds.PerformingPhysicianName except NameError: PerformingPhysicianName = 'undefined' except AttributeError: PerformingPhysicianName = 'undefined' try: ModalitiesInStudy=ds.ModalitiesInStudy except NameError: ModalitiesInStudy = 'undefined' except AttributeError: ModalitiesInStudy = 'undefined' try: MagneticFieldStrength=ds.MagneticFieldStrength except NameError: MagneticFieldStrength = 0 except AttributeError: MagneticFieldStrength = 0 b2=Study(StudyDescription=StudyDescription,StationName=StationName,ManufacturerModelName=ManufacturerModelName, StudyInstanceUID=StudyInstanceUID,Pathology=Pathology,StudyDate=StudyDate, StudyTime=StudyTime,AccessionNumber=AccessionNumber,InstitutionName=InstitutionName, ReferringPhysicianName=ReferringPhysicianName,ModalitiesInStudy=ModalitiesInStudy, MagneticFieldStrength=MagneticFieldStrength,patient=search3.first()) b2.save() ####################### Series table ###################### try: SeriesNumber=ds.SeriesNumber except NameError: SeriesNumber = 'undefined' except AttributeError: SeriesNumber = 'undefined' try: SeriesInstanceUID=str(ds.SeriesInstanceUID) except NameError: SeriesInstanceUID = 'undefined' except AttributeError: SeriesInstanceUID = 'undefined' try: ProtocolName=ds.ProtocolName except NameError: ProtocolName = 'undefined' except AttributeError: ProtocolName = 'undefined' try: Modality=ds.Modality except NameError: Modality = 'undefined' except AttributeError: Modality = 'undefined' try: SeriesDescription=ds.SeriesDescription except NameError: SeriesDescription = 'undefined' except AttributeError: SeriesDescription = 'undefined' try: SeriesTime=ds.SeriesTime except NameError: SeriesTime = 'undefined' except AttributeError: SeriesTime = 'undefined' try: ContrastAgent=ds.ContrastAgent except NameError: ContrastAgent = 'undefined' except AttributeError: ContrastAgent = 'undefined' try: ScanningSequence=ds.ScanningSequence except NameError: ScanningSequence = 'undefined' except AttributeError: ScanningSequence = 'undefined' try: BodyPartExaminated=ds.BodyPartExaminated except NameError: BodyPartExaminated = 'undefined' except AttributeError: BodyPartExaminated = 'undefined' try: AcquisitionNumber=ds.AcquisitionNumber except NameError: AcquisitionNumber = 'undefined' except AttributeError: AcquisitionNumber = 'undefined' b3=Series(SeriesNumber=SeriesNumber,SeriesInstanceUID=SeriesInstanceUID,ProtocolName=ProtocolName,Modality=Modality, SeriesDescription=SeriesDescription,SeriesTime=SeriesTime,ContrastAgent=ContrastAgent,ScanningSequence=ScanningSequence, BodyPartExaminated=BodyPartExaminated,AcquisitionNumber=AcquisitionNumber,study=search2.first()) b3.save() ############ MR_Params table ############## try: PixelSpacing=ds.PixelSpacing except NameError: PixelSpacing = 'undefined' except AttributeError: PixelSpacing = 'undefined' try: SliceThickness=ds.SliceThickness except NameError: SliceThickness = 'undefined' except AttributeError: SliceThickness = 'undefined' try: EchoTime=ds.EchoTime except NameError: EchoTime = 'undefined' except AttributeError: EchoTime = 'undefined' try: EchoNumbers=ds.EchoNumbers except NameError: EchoNumbers = 'undefined' except AttributeError: EchoNumbers = 'undefined' try: InversionTime=ds.InversionTime except NameError: InversionTime = 'undefined' except AttributeError: InversionTime = 'undefined' try: RepetitionTime=ds.RepetitionTime except NameError: RepetitionTime = 'undefined' except AttributeError: RepetitionTime = 'undefined' b4=MR_Params(PixelSpacing=PixelSpacing,SliceThickness=SliceThickness,EchoTime=EchoTime,EchoNumbers=EchoNumbers, InversionTime=InversionTime,RepetitionTime=RepetitionTime, modality_params= b3) b4.save() ############# US_Params ############### try: Name=ds.Name except NameError: Name = 'undefined' except AttributeError: Name = 'undefined' b5=US_Params(Name=Name,modality_params=b3) b5.save() ################ CT_Params #################### try: Name=ds.Name except NameError: Name = 'undefined' except AttributeError: Name = 'undefined' b6=CT_Params(Name=Name,modality_params=b3) b6.save() else: #creation de toutes les tables ################# Patient table ################### try: PatientID=ds.PatientID except NameError: PatientID = 'undefined' except AttributeError: PatientID = 'undefined' try: PatientName=ds.PatientName except NameError: PatientName = 'undefined' except AttributeError: PatientName = 'undefined' try: PatientAge=ds.PatientAge except NameError: PatientAge = 'undefined' except AttributeError: PatientAge = 'undefined' try: PatientSex=ds.PatientSex except NameError: PatientSex = 'undefined' except AttributeError: PatientSex = 'undefined' try: PatientBirthDate=ds.PatientBirthDate except NameError: PatientBirthDate = 'undefined' except AttributeError: PatientBirthDate = 'undefined' try: PatientBirthTime=ds.PatientBirthTime except NameError: PatientBirthTime = 'undefined' except AttributeError: PatientBirthTime = 'undefined' b1=Patient(PatientID=PatientID, PatientAge=PatientAge, PatientSex=PatientSex,PatientName=PatientName, PatientBirthDate=PatientBirthDate, PatientBirthTime=PatientBirthTime) b1.save() ################## Study table #################### try: StudyDescription=ds.StudyDescription except NameError: StudyDescription = 'undefined' except AttributeError: StudyDescription = 'undefined' try: StationName=ds.StationName except NameError: StationName = 'undefined' except AttributeError: StationName = 'undefined' try: ManufacturerModelName=ds.ManufacturerModelName except NameError: ManufacturerModelName = 'undefined' except AttributeError: ManufacturerModelName = 'undefined' try: StudyInstanceUID=str(ds.StudyInstanceUID) except NameError: StudyInstanceUID = 'undefined' except AttributeError: StudyInstanceUID = 'undefined' try: Pathology=ds.Pathology except NameError: Pathology = 'undefined' except AttributeError: Pathology = 'undefined' try: StudyDate=ds.StudyDate except NameError: StudyDate = 'undefined' except AttributeError: StudyDate = 'undefined' try: StudyTime=ds.StudyTime except NameError: StudyTime = 'undefined' except AttributeError: StudyTime = 'undefined' try: AccessionNumber=ds.AccessionNumber except NameError: AccessionNumber = 'undefined' except AttributeError: AccessionNumber = 'undefined' try: InstitutionName=ds.InstitutionName except NameError: InstitutionName = 'undefined' except AttributeError: InstitutionName = 'undefined' try: ReferringPhysicianName=ds.ReferringPhysicianName except NameError: ReferringPhysicianName = 'undefined' except AttributeError: ReferringPhysicianName = 'undefined' try: PerformingPhysicianName=ds.PerformingPhysicianName except NameError: PerformingPhysicianName = 'undefined' except AttributeError: PerformingPhysicianName = 'undefined' try: ModalitiesInStudy=ds.ModalitiesInStudy except NameError: ModalitiesInStudy = 'undefined' except AttributeError: ModalitiesInStudy = 'undefined' try: MagneticFieldStrength=ds.MagneticFieldStrength except NameError: MagneticFieldStrength = 0 except AttributeError: MagneticFieldStrength = 0 b2=Study(StudyDescription=StudyDescription,StationName=StationName,ManufacturerModelName=ManufacturerModelName, StudyInstanceUID=StudyInstanceUID,Pathology=Pathology,StudyDate=StudyDate, StudyTime=StudyTime,AccessionNumber=AccessionNumber,InstitutionName=InstitutionName, ReferringPhysicianName=ReferringPhysicianName,ModalitiesInStudy=ModalitiesInStudy, MagneticFieldStrength=MagneticFieldStrength,patient=b1) b2.save() ####################### Series table ###################### try: SeriesNumber=ds.SeriesNumber except NameError: SeriesNumber = 'undefined' except AttributeError: SeriesNumber = 'undefined' try: SeriesInstanceUID=str(ds.SeriesInstanceUID) except NameError: SeriesInstanceUID = 'undefined' except AttributeError: SeriesInstanceUID = 'undefined' try: ProtocolName=ds.ProtocolName except NameError: ProtocolName = 'undefined' except AttributeError: ProtocolName = 'undefined' try: Modality=ds.Modality except NameError: Modality = 'undefined' except AttributeError: Modality = 'undefined' try: SeriesDescription=ds.SeriesDescription except NameError: SeriesDescription = 'undefined' except AttributeError: SeriesDescription = 'undefined' try: SeriesTime=ds.SeriesTime except NameError: SeriesTime = 'undefined' except AttributeError: SeriesTime = 'undefined' try: ContrastAgent=ds.ContrastAgent except NameError: ContrastAgent = 'undefined' except AttributeError: ContrastAgent = 'undefined' try: ScanningSequence=ds.ScanningSequence except NameError: ScanningSequence = 'undefined' except AttributeError: ScanningSequence = 'undefined' try: BodyPartExaminated=ds.BodyPartExaminated except NameError: BodyPartExaminated = 'undefined' except AttributeError: BodyPartExaminated = 'undefined' try: AcquisitionNumber=ds.AcquisitionNumber except NameError: AcquisitionNumber = 'undefined' except AttributeError: AcquisitionNumber = 'undefined' b3=Series(SeriesNumber=SeriesNumber,SeriesInstanceUID=SeriesInstanceUID,ProtocolName=ProtocolName,Modality=Modality, SeriesDescription=SeriesDescription,SeriesTime=SeriesTime,ContrastAgent=ContrastAgent,ScanningSequence=ScanningSequence, BodyPartExaminated=BodyPartExaminated,AcquisitionNumber=AcquisitionNumber,study=b2) b3.save() ############ MR_Params table ############## try: PixelSpacing=ds.PixelSpacing except NameError: PixelSpacing = 'undefined' except AttributeError: PixelSpacing = 'undefined' try: SliceThickness=ds.SliceThickness except NameError: SliceThickness = 'undefined' except AttributeError: SliceThickness = 'undefined' try: EchoTime=ds.EchoTime except NameError: EchoTime = 'undefined' except AttributeError: EchoTime = 'undefined' try: EchoNumbers=ds.EchoNumbers except NameError: EchoNumbers = 'undefined' except AttributeError: EchoNumbers = 'undefined' try: InversionTime=ds.InversionTime except NameError: InversionTime = 'undefined' except AttributeError: InversionTime = 'undefined' try: RepetitionTime=ds.RepetitionTime except NameError: RepetitionTime = 'undefined' except AttributeError: RepetitionTime = 'undefined' b4=MR_Params(PixelSpacing=PixelSpacing,SliceThickness=SliceThickness,EchoTime=EchoTime,EchoNumbers=EchoNumbers, InversionTime=InversionTime,RepetitionTime=RepetitionTime, modality_params= b3) b4.save() ############# US_Params ############### try: Name=ds.Name except NameError: Name = 'undefined' except AttributeError: Name = 'undefined' b5=US_Params(Name=Name,modality_params=b3) b5.save() ################ CT_Params #################### try: Name=ds.Name except NameError: Name = 'undefined' except AttributeError: Name = 'undefined' b6=CT_Params(Name=Name,modality_params=b3) b6.save() else: print("'%s' n'est pas un fichier dicom" % fichier)
def update(request, timestamp): print "Hello" json_data = request.read() data = simplejson.loads(json_data) current_date = datetime.datetime.now() current_timestamp = long(time.mktime(current_date.timetuple())) print data["timestamp"] ###Handle Add Operation # Condition: add if only if KTP is not exist for a in data["add"]["user"]: try: temp = User.objects.get(ktp=a["local_ktp"]) except User.DoesNotExist: u = User( ktp=a["local_ktp"], username=a["username"], password=a["password"], name=a["name"], address=a["address"], email=a["email"], phone=a["phone"], description=a["description"], is_active=a["is_active"], modify_timestamp=a["modify_timestamp"], create_timestamp=a["create_timestamp"], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) u.save() print "saving user", u.ktp # Condition: add if only if KTP is not exist for a in data["add"]["patient"]: try: temp = Patient.objects.get(ktp=a["local_ktp"]) except Patient.DoesNotExist: p = Patient( ktp=a["local_ktp"], name=a["name"], address=a["address"], phone=a["phone"], birthdate=a["birthdate"], filename=a["filename"], description=a["description"], is_active=a["is_active"], modify_timestamp=a["modify_timestamp"], create_timestamp=a["create_timestamp"], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) p.save() print "saving patient", p.ktp # Condition: add if only if Patient's KTP+Pregnancy Number is not exist for a in data["add"]["pregnancy"]: try: temp = Pregnancy.objects.get( patient__ktp=a["local_patient_id"], pregnancy_number=a["local_pregnancy_number"] ) except Pregnancy.DoesNotExist: patient_temp = Patient.objects.get(ktp=a["local_patient_id"]) p = Pregnancy( patient=patient_temp, pregnancy_number=a["local_pregnancy_number"], is_finish=a["is_finish"], is_active=a["is_active"], modify_timestamp=a["modify_timestamp"], create_timestamp=a["create_timestamp"], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) p.save() print "saving pregnancy", p.patient.ktp, p.pregnancy_number # Condition: Add if only if no doctor with identical ktp or id for a in data["add"]["doctor"]: temp = Doctor.objects.filter(Q(user__ktp=a["local_ktp"]) | Q(doctor_id=a["doctor_id"])) if len(temp) < 1: u = User.objects.get(ktp=a["local_ktp"]) d = Doctor( user=u, doctor_id=a["doctor_id"], is_active=a["is_active"], modify_timestamp=a["modify_timestamp"], create_timestamp=a["create_timestamp"], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) d.save() print "saving doctor", d.user.ktp, d.doctor_id # Condition: Add if only if no identical clinic id exist for a in data["add"]["clinic"]: try: temp = Clinic.objects.get(clinic_id=a["local_clinic_id"]) except Clinic.DoesNotExist: c = Clinic( clinic_id=a["local_clinic_id"], name=a["name"], address=a["address"], city=a["city"], province=a["province"], phone=a["phone"], description=a["description"], is_active=a["is_active"], modify_timestamp=a["modify_timestamp"], create_timestamp=a["create_timestamp"], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) c.save() print "saving clinic", c.clinic_id # Condition: Add if only if no officer with identical ktp or id for a in data["add"]["officer"]: temp = Officer.objects.filter(Q(user__ktp=a["local_ktp"]) | Q(officer_id=a["officer_id"])) if len(temp) == 0: u = User.objects.get(ktp=a["local_ktp"]) o = Officer( user=u, officer_id=a["officer_id"], clinic_id=a["local_clinic_id"], is_active=a["is_active"], modify_timestamp=a["modify_timestamp"], create_timestamp=a["create_timestamp"], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) o.save() print "saving officer", o.user.ktp, o.officer_id photo_confirmation = [] # Condition: Add as long as KTP + Pregnancy exist. Global photo number may be differ for a in data["add"]["photo"]: try: temp = Pregnancy.objects.get(patient__ktp=a["local_ktp"], pregnancy_number=a["local_pregnancy_number"]) o = Officer.objects.get(user__ktp=a["local_officer_ktp"]) last_objects = Photo.objects.filter(pregnancy__pregnancy_id=temp.pregnancy_id).aggregate( Max("photo_number") ) last_number = last_objects["photo_number__max"] if last_number is None: last_number = 1 p = Photo( pregnancy=temp, officer=o, photo_number=last_number + 1, analyze_timestamp=a["analyze_timestamp"], filename=a["filename"], x=a["x"], y=a["y"], a=a["a"], b=a["b"], tetha=a["tetha"], scale=a["scale"], method=a["method"], is_active=a["is_active"], modify_timestamp=a["modify_timestamp"], create_timestamp=a["create_timestamp"], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) p.save() photo_confirmation.append( { "local_number": a["local_photo_number"], "ktp": a["local_ktp"], "pregnancy_number": a["local_pregnancy_number"], "global_number": p.photo_number, } ) print "saving photo", p.pregnancy.patient.ktp, p.pregnancy.pregnancy_number, p.photo_number except (Pregnancy.DoesNotExist, Officer.DoesNotExist): print "Pregnancy, photo, Officer not exist" # Condition: Add if only if clinic and patient exist, no existing serve, the server_id may vary for a in data["add"]["serve"]: try: temp = Serve.objects.get(clinic__clinic_id=a["local_clinic_id"], patient__ktp=a["local_ktp"]) except Serve.DoesNotExist: try: c = Clinic.objects.get(clinic_id=a["local_clinic_id"]) p = Patient.objects.get(ktp=a["local_ktp"]) s = Serve( clinic=c, patient=p, is_active=a["is_active"], modify_timestamp=a["modify_timestamp"], create_timestamp=a["create_timestamp"], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) s.save() print "saving serve", p.ktp, c.clinic_id except (Clinic.DoesNotExist, Patient.DoesNotExist) as e: print "Clinic, Patient not exist" # Condition: Add if only if clinic and doctor exist, no existing works0n print data["add"]["works_on"] for a in data["add"]["works_on"]: try: temp = Works_On.objects.get(clinic__clinic_id=a["local_clinic_id"], doctor__user__ktp=a["local_ktp"]) except Works_On.DoesNotExist: try: c = Clinic.objects.get(clinic_id=a["local_clinic_id"]) d = Doctor.objects.get(user__ktp=a["local_ktp"]) w = Works_On( clinic=c, doctor=d, is_active=a["is_active"], modify_timestamp=a["modify_timestamp"], create_timestamp=a["create_timestamp"], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) w.save() print "saving works_on", d.user.ktp, c.clinic_id except (Clinic.DoesNotExist, Doctor.DoesNotExist) as e: print "Clinic, Doctor not exist" # Condition: Add if only if photo and doctor exist, no existing Validation for a in data["add"]["validation"]: try: current_photo_number = a["photo_number"] if current_photo_number == -1: for ii in photo_confirmation: if ( ii["local_number"] == a["local_photo_number"] and ii["ktp"] == a["local_patient_ktp"] and ii["pregnancy_number"] == a["local_pregnancy_number"] ): current_photo_number = ii["global_number"] break if current_photo_number == -1: continue temp = Validation.objects.get( doctor__user__ktp=a["local_doctor_ktp"], photo__photo_number=current_photo_number, photo__pregnancy__pregnancy_number=a["local_pregnancy_number"], photo__pregnancy__patient__ktp=a["local_patient_ktp"], ) except Validation.DoesNotExist: try: if current_photo_number != -1: p = Photo.objects.get( photo_number=current_photo_number, pregnancy__pregnancy_number=a["local_pregnancy_number"], pregnancy__patient__ktp=a["local_patient_ktp"], ) d = Doctor.objects.get(user__ktp=a["local_doctor_ktp"]) v = Validation( doctor=d, photo=p, x=a["x"], y=a["y"], a=a["a"], b=a["b"], tetha=a["tetha"], has_seen=a["has_seen"], is_active=a["is_active"], modify_timestamp=a["modify_timestamp"], create_timestamp=a["create_timestamp"], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) v.save() print "saving validation", d.user.ktp, p.pregnancy.patient.ktp, p.pregnancy.pregnancy_number, p.photo_number except (Photo.DoesNotExist, Doctor.DoesNotExist) as e: print "Photo, Doctor not exist" comment_confirmation = [] # Condition: Add as long as KTP + Pregnancy exist. Global photo number may be differ for a in data["add"]["comment"]: try: d = Doctor.objects.get(user__ktp=a["local_doctor_ktp"]) o = Officer.objects.get(user__ktp=a["local_officer_ktp"]) p = Patient.objects.get(ktp=a["local_patient_ktp"]) last_objects = Comment.objects.filter(patient__ktp=p.ktp).aggregate(Max("comment_number")) last_number = last_objects["comment_number__max"] if last_number is None: last_number = 1 c = Comment( doctor=d, officer=o, patient=p, comment_number=last_number + 1, from_doctor=a["from_doctor"], content=a["content"], has_seen=a["has_seen"], is_active=a["is_active"], modify_timestamp=a["modify_timestamp"], create_timestamp=a["create_timestamp"], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) c.save() comment_confirmation.append( { "local_number": a["local_comment_number"], "ktp": a["local_patient_ktp"], "global_number": c.comment_number, } ) print "saving comment", p.ktp, c.comment_number except (Doctor.DoesNotExist, Officer.DoesNotExist, Patient.DoesNotExist): print "Doctor, officer, patient not exist" # update user, exceptional: username, server_create_timestamp for a in data["update"]["user"]: try: temp = User.objects.get(ktp=a["ktp"]) temp.password = a["password"] temp.name = a["name"] temp.address = a["address"] temp.email = a["email"] temp.phone = a["phone"] temp.description = a["description"] temp.is_active = a["is_active"] temp.modify_timestamp = a["modify_timestamp"] temp.create_timestamp = a["create_timestamp"] temp.server_modify_timestamp = current_timestamp temp.save() print "user updated", a["ktp"] except User.DoesNotExist: print "user not exist", a["ktp"] # update patient, exceptional: ktp, server_create_timestamp for a in data["update"]["patient"]: try: temp = Patient.objects.get(ktp=a["ktp"]) name = (a["name"],) temp.address = (a["address"],) temp.phone = (a["phone"],) temp.birthdate = (a["birthdate"],) temp.description = (a["description"],) temp.is_active = a["is_active"] temp.modify_timestamp = a["modify_timestamp"] temp.create_timestamp = a["create_timestamp"] temp.server_modify_timestamp = current_timestamp temp.save() print "patient updated", a["ktp"] except Patient.DoesNotExist: print "patient not exist", a["ktp"] # Update pregnancy, except patient pregnancy_number server_create_timestamp for a in data["update"]["pregnancy"]: try: temp = Pregnancy.objects.get(patient__ktp=a["patient_id"], pregnancy_number=a["pregnancy_number"]) temp.is_finish = a["is_finish"] temp.is_active = a["is_active"] temp.modify_timestamp = a["modify_timestamp"] temp.create_timestamp = a["create_timestamp"] temp.server_modify_timestamp = current_timestamp temp.save() print "pregnancy updated", a["patient_id"], a["pregnancy_number"] except Pregnancy.DoesNotExist: print "pregnancy not exist", a["patient_id"], a["pregnancy_number"] # Update doctor, except user_ktp doctor_id server_arrival_timestamp for a in data["update"]["doctor"]: try: temp = Doctor.objects.get(user__ktp=a["ktp"]) temp.is_active = a["is_active"] temp.modify_timestamp = a["modify_timestamp"] temp.create_timestamp = a["create_timestamp"] temp.server_modify_timestamp = current_timestamp temp.save() print "doctor updated ", a["ktp"] except Doctor.DoesNotExist: print "doctor not exist", a["ktp"] # Update clinic, except clinic_id server_arrival_timestamp for a in data["update"]["clinic"]: try: temp = Clinic.objects.get(clinic_id=a["clinic_id"]) temp.name = a["name"] temp.address = a["address"] temp.city = a["city"] temp.province = a["province"] temp.phone = a["phone"] temp.description = a["description"] temp.is_active = a["is_active"] temp.modify_timestamp = a["modify_timestamp"] temp.create_timestamp = a["create_timestamp"] temp.server_modify_timestamp = current_timestamp temp.save() print "clinic updated ", a["clinic_id"] except Clinic.DoesNotExist: print "clinic not exist", a["clinic_id"] # Update officer, except user_ktp officer_id clinic_id server_arrival_timestamp for a in data["update"]["officer"]: try: temp = Officer.objects.get(user__ktp=a["ktp"]) temp.is_active = a["is_active"] temp.modify_timestamp = a["modify_timestamp"] temp.create_timestamp = a["create_timestamp"] temp.server_modify_timestamp = current_timestamp temp.save() print "officer updated ", a["ktp"] except Officer.DoesNotExist: print "officer not exist", a["ktp"] # Update Photo, except patient_ktp, pregnancy_number, photo_number, officer_ktp server_arrival_timestamp for a in data["update"]["photo"]: try: temp = Photo.objects.get( pregnancy__patient__ktp=a["ktp"], pregnancy__pregnancy_number=a["pregnancy_number"], photo_number=a["photo_number"], ) temp.analyze_timestamp = a["analyze_timestamp"] temp.filename = a["filename"] temp.x = a["x"] temp.y = a["y"] temp.a = a["a"] temp.b = a["b"] temp.tetha = a["tetha"] temp.scale = a["scale"] temp.method = a["method"] temp.is_active = a["is_active"] temp.modify_timestamp = a["modify_timestamp"] temp.create_timestamp = a["create_timestamp"] temp.server_modify_timestamp = current_timestamp temp.save() print "Photo updated ", a["ktp"], a["pregnancy_number"], a["photo_number"] except Photo.DoesNotExist: print "Photo not exist ", a["ktp"], a["pregnancy_number"], a["photo_number"] # Update Serve, except clinic_id patient_ktp server_arrival_timestamp for a in data["update"]["serve"]: try: temp = Serve.objects.get(clinic__clinic_id=a["clinic_id"], patient__ktp=a["ktp"]) temp.is_active = a["is_active"] temp.modify_timestamp = a["modify_timestamp"] temp.create_timestamp = a["create_timestamp"] temp.server_modify_timestamp = current_timestamp temp.save() print "Serve updated ", a["clinic_id"], a["ktp"] except Serve.DoesNotExist: print "Serve not exist ", a["clinic_id"], a["ktp"] # Update WorksOn, except clinic_id doctor_ktp server_arrival_timestamp for a in data["update"]["works_on"]: try: temp = Works_On.objects.get(clinic__clinic_id=a["clinic_id"], doctor__user__ktp=a["ktp"]) temp.is_active = a["is_active"] temp.modify_timestamp = a["modify_timestamp"] temp.create_timestamp = a["create_timestamp"] temp.server_modify_timestamp = current_timestamp temp.save() print "WorksOn updated ", a["clinic_id"], a["ktp"] except Works_On.DoesNotExist: print "WorksOn not exist ", a["clinic_id"], a["ktp"] # Update Validation, except photo_number, pregnancy_number, patient_ktp server_arrival_timestamp for a in data["update"]["validation"]: try: temp = Validation.objects.get( doctor__user__ktp=a["doctor_ktp"], photo__photo_number=a["photo_number"], photo__pregnancy__pregnancy_number=a["pregnancy_number"], photo__pregnancy__patient__ktp=a["patient_ktp"], ) temp.x = a["x"] temp.y = a["y"] temp.a = a["a"] temp.b = a["b"] temp.tetha = a["tetha"] temp.has_seen = a["has_seen"] temp.is_active = a["is_active"] temp.modify_timestamp = a["modify_timestamp"] temp.create_timestamp = a["create_timestamp"] temp.server_modify_timestamp = current_timestamp temp.save() print "Validation updated ", a["doctor_ktp"], a["photo_number"], a["pregnancy_number"], a["patient_ktp"] except Validation.DoesNotExist: print "Validation not exist ", a["doctor_ktp"], a["photo_number"], a["pregnancy_number"], a["patient_ktp"] # Update Validation, except officer doctor comment_number patient_ktp server_arrival_timestamp for a in data["update"]["comment"]: try: temp = Comment.objects.get(patient__ktp=a["patient_ktp"], comment_number=a["comment_number"]) temp.from_doctor = a["from_doctor"] temp.content = a["content"] temp.has_seen = a["has_seen"] temp.temp.is_active = a["is_active"] temp.modify_timestamp = a["modify_timestamp"] temp.create_timestamp = a["create_timestamp"] temp.server_modify_timestamp = current_timestamp temp.save() print "Validation updated ", a["patient_ktp"], a["comment_number"] except Comment.DoesNotExist: print "Validation updated ", a["patient_ktp"], a["comment_number"] # confirm_doctor = [] # confirm_json = {'user':confirm_user, # 'doctor':confirm_doctor} ###Cari new Addition # table user new_user_json = [] new_users = User.objects.all().filter(server_arrival_timestamp__gt=timestamp, is_active=True) for user in new_users: new_user_json.append(user.get_json()) # table doctor new_doctor_json = [] new_doctors = Doctor.objects.all().filter(server_arrival_timestamp__gt=timestamp, is_active=True) for doctor in new_doctors: new_doctor_json.append(doctor.get_json()) # table clinic new_clinic_json = [] new_clinics = Clinic.objects.all().filter(server_arrival_timestamp__gt=timestamp, is_active=True) for clinic in new_clinics: new_clinic_json.append(clinic.get_json()) # table officer new_officer_json = [] new_officers = Officer.objects.all().filter(server_arrival_timestamp__gt=timestamp, is_active=True) for officer in new_officers: new_officer_json.append(officer.get_json()) # table patient new_patient_json = [] new_patients = Patient.objects.all().filter(server_arrival_timestamp__gt=timestamp, is_active=True) for patient in new_patients: new_patient_json.append(patient.get_json()) # table pregnancy new_pregnancy_json = [] new_pregnancies = Clinic.objects.all().filter(server_arrival_timestamp__gt=timestamp, is_active=True) for pregnancy in new_pregnancies: new_pregnancy_json.append(pregnancy.get_json()) # table photo new_photo_json = [] new_photos = Photo.objects.all().filter(server_arrival_timestamp__gt=timestamp, is_active=True) for photo in new_photos: new_photo_json.append(photo.get_json()) # table serve new_serve_json = [] new_serves = Serve.objects.all().filter(server_arrival_timestamp__gt=timestamp, is_active=True) for serve in new_serves: new_serve_json.append(serve.get_json()) # table works_on new_workson_json = [] new_worksons = Works_On.objects.all().filter(server_arrival_timestamp__gt=timestamp, is_active=True) for workson in new_worksons: new_workson_json.append(workson.get_json()) # table validation new_validation_json = [] new_validations = Validation.objects.all().filter(server_arrival_timestamp__gt=timestamp, is_active=True) for validation in new_validations: new_validation_json.append(validation.get_json()) # table comment new_comment_json = [] new_comments = Comment.objects.all().filter(server_arrival_timestamp__gt=timestamp, is_active=True) for comment in new_comments: new_comment_json.append(comment.get_json()) # table user update_user_json = [] update_users = User.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp) ) for user in update_users: update_user_json.append(user.get_json()) # table doctor update_doctor_json = [] update_doctors = Doctor.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp) ) for doctor in update_doctors: update_doctor_json.append(doctor.get_json()) # table clinic update_clinic_json = [] update_clinics = Clinic.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp) ) for clinic in update_clinics: update_clinic_json.append(clinic.get_json()) # table officer update_officer_json = [] update_officers = Officer.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp) ) for officer in update_officers: update_officer_json.append(officer.get_json()) # table patient update_patient_json = [] update_patients = Patient.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp) ) for patient in update_patients: update_patient_json.append(patient.get_json()) # table pregnancy update_pregnancy_json = [] update_pregnancies = Clinic.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp) ) for pregnancy in update_pregnancies: update_pregnancy_json.append(pregnancy.get_json()) # table photo update_photo_json = [] update_photos = Photo.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp) ) for photo in update_photos: update_photo_json.append(photo.get_json()) # table serve update_serve_json = [] update_serves = Serve.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp) ) for serve in update_serves: update_serve_json.append(serve.get_json()) # table works_on update_workson_json = [] update_worksons = Works_On.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp) ) for workson in update_worksons: update_workson_json.append(workson.get_json()) # table validation update_validation_json = [] update_validations = Validation.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp) ) for validation in update_validations: update_validation_json.append(validation.get_json()) # table comment update_comment_json = [] update_comments = Comment.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp) ) for comment in update_comments: update_comment_json.append(comment.get_json()) return HttpResponse( simplejson.dumps( { "add": { "user": new_user_json, "doctor": new_doctor_json, "clinic": new_clinic_json, "officer": new_officer_json, "patient": new_patient_json, "pregnancy": new_pregnancy_json, "photo": new_photo_json, "serve": new_serve_json, "works_on": new_workson_json, "validation": new_validation_json, "comment": new_comment_json, }, "update": { "user": update_user_json, "doctor": update_doctor_json, "clinic": update_clinic_json, "officer": update_officer_json, "patient": update_patient_json, "pregnancy": update_pregnancy_json, "photo": update_photo_json, "serve": update_serve_json, "works_on": update_workson_json, "validation": update_validation_json, "comment": update_comment_json, }, "confirm_add": {"photo": photo_confirmation, "comment": comment_confirmation}, }, indent=4, ), mimetype="application/json", )
def update(request, timestamp): print 'Hello' json_data = request.read() data = simplejson.loads(json_data) current_date = datetime.datetime.now() current_timestamp = long(time.mktime(current_date.timetuple())) print data['timestamp'] ###Handle Add Operation #Condition: add if only if KTP is not exist for a in data['add']['user']: try: temp = User.objects.get(ktp=a['local_ktp']) except User.DoesNotExist: u = User( ktp=a['local_ktp'], username=a['username'], password=a['password'], name=a['name'], address=a['address'], email=a['email'], phone=a['phone'], description=a['description'], is_active=a['is_active'], modify_timestamp=a['modify_timestamp'], create_timestamp=a['create_timestamp'], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) u.save() print 'saving user', u.ktp #Condition: add if only if KTP is not exist for a in data['add']['patient']: try: temp = Patient.objects.get(ktp=a['local_ktp']) except Patient.DoesNotExist: p = Patient( ktp=a['local_ktp'], name=a['name'], address=a['address'], phone=a['phone'], birthdate=a['birthdate'], filename=a['filename'], description=a['description'], is_active=a['is_active'], modify_timestamp=a['modify_timestamp'], create_timestamp=a['create_timestamp'], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) p.save() print 'saving patient', p.ktp #Condition: add if only if Patient's KTP+Pregnancy Number is not exist for a in data['add']['pregnancy']: try: temp = Pregnancy.objects.get( patient__ktp=a['local_patient_id'], pregnancy_number=a['local_pregnancy_number']) except Pregnancy.DoesNotExist: patient_temp = Patient.objects.get(ktp=a['local_patient_id']) p = Pregnancy( patient=patient_temp, pregnancy_number=a['local_pregnancy_number'], is_finish=a['is_finish'], is_active=a['is_active'], modify_timestamp=a['modify_timestamp'], create_timestamp=a['create_timestamp'], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) p.save() print 'saving pregnancy', p.patient.ktp, p.pregnancy_number #Condition: Add if only if no doctor with identical ktp or id for a in data['add']['doctor']: temp = Doctor.objects.filter( Q(user__ktp=a['local_ktp']) | Q(doctor_id=a['doctor_id'])) if len(temp) < 1: u = User.objects.get(ktp=a['local_ktp']) d = Doctor( user=u, doctor_id=a['doctor_id'], is_active=a['is_active'], modify_timestamp=a['modify_timestamp'], create_timestamp=a['create_timestamp'], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) d.save() print 'saving doctor', d.user.ktp, d.doctor_id #Condition: Add if only if no identical clinic id exist for a in data['add']['clinic']: try: temp = Clinic.objects.get(clinic_id=a['local_clinic_id']) except Clinic.DoesNotExist: c = Clinic( clinic_id=a['local_clinic_id'], name=a['name'], address=a['address'], city=a['city'], province=a['province'], phone=a['phone'], description=a['description'], is_active=a['is_active'], modify_timestamp=a['modify_timestamp'], create_timestamp=a['create_timestamp'], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) c.save() print 'saving clinic', c.clinic_id #Condition: Add if only if no officer with identical ktp or id for a in data['add']['officer']: temp = Officer.objects.filter( Q(user__ktp=a['local_ktp']) | Q(officer_id=a['officer_id'])) if len(temp) == 0: u = User.objects.get(ktp=a['local_ktp']) o = Officer( user=u, officer_id=a['officer_id'], clinic_id=a['local_clinic_id'], is_active=a['is_active'], modify_timestamp=a['modify_timestamp'], create_timestamp=a['create_timestamp'], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) o.save() print 'saving officer', o.user.ktp, o.officer_id photo_confirmation = [] #Condition: Add as long as KTP + Pregnancy exist. Global photo number may be differ for a in data['add']['photo']: try: temp = Pregnancy.objects.get( patient__ktp=a['local_ktp'], pregnancy_number=a['local_pregnancy_number']) o = Officer.objects.get(user__ktp=a['local_officer_ktp']) last_objects = Photo.objects.filter( pregnancy__pregnancy_id=temp.pregnancy_id).aggregate( Max('photo_number')) last_number = last_objects['photo_number__max'] if last_number is None: last_number = 1 p = Photo( pregnancy=temp, officer=o, photo_number=last_number + 1, analyze_timestamp=a['analyze_timestamp'], filename=a['filename'], x=a['x'], y=a['y'], a=a['a'], b=a['b'], tetha=a['tetha'], scale=a['scale'], method=a['method'], is_active=a['is_active'], modify_timestamp=a['modify_timestamp'], create_timestamp=a['create_timestamp'], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) p.save() photo_confirmation.append({ 'local_number': a['local_photo_number'], 'ktp': a['local_ktp'], 'pregnancy_number': a['local_pregnancy_number'], 'global_number': p.photo_number }) print 'saving photo', p.pregnancy.patient.ktp, p.pregnancy.pregnancy_number, p.photo_number except (Pregnancy.DoesNotExist, Officer.DoesNotExist): print 'Pregnancy, photo, Officer not exist' #Condition: Add if only if clinic and patient exist, no existing serve, the server_id may vary for a in data['add']['serve']: try: temp = Serve.objects.get(clinic__clinic_id=a['local_clinic_id'], patient__ktp=a['local_ktp']) except Serve.DoesNotExist: try: c = Clinic.objects.get(clinic_id=a['local_clinic_id']) p = Patient.objects.get(ktp=a['local_ktp']) s = Serve( clinic=c, patient=p, is_active=a['is_active'], modify_timestamp=a['modify_timestamp'], create_timestamp=a['create_timestamp'], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) s.save() print 'saving serve', p.ktp, c.clinic_id except (Clinic.DoesNotExist, Patient.DoesNotExist) as e: print 'Clinic, Patient not exist' #Condition: Add if only if clinic and doctor exist, no existing works0n print data['add']['works_on'] for a in data['add']['works_on']: try: temp = Works_On.objects.get(clinic__clinic_id=a['local_clinic_id'], doctor__user__ktp=a['local_ktp']) except Works_On.DoesNotExist: try: c = Clinic.objects.get(clinic_id=a['local_clinic_id']) d = Doctor.objects.get(user__ktp=a['local_ktp']) w = Works_On( clinic=c, doctor=d, is_active=a['is_active'], modify_timestamp=a['modify_timestamp'], create_timestamp=a['create_timestamp'], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) w.save() print 'saving works_on', d.user.ktp, c.clinic_id except (Clinic.DoesNotExist, Doctor.DoesNotExist) as e: print 'Clinic, Doctor not exist' #Condition: Add if only if photo and doctor exist, no existing Validation for a in data['add']['validation']: try: current_photo_number = a['photo_number'] if current_photo_number == -1: for ii in photo_confirmation: if ii['local_number'] == a['local_photo_number'] and ii[ 'ktp'] == a['local_patient_ktp'] and ii[ 'pregnancy_number'] == a[ 'local_pregnancy_number']: current_photo_number = ii['global_number'] break if current_photo_number == -1: continue temp = Validation.objects.get( doctor__user__ktp=a['local_doctor_ktp'], photo__photo_number=current_photo_number, photo__pregnancy__pregnancy_number=a['local_pregnancy_number'], photo__pregnancy__patient__ktp=a['local_patient_ktp']) except Validation.DoesNotExist: try: if current_photo_number != -1: p = Photo.objects.get( photo_number=current_photo_number, pregnancy__pregnancy_number=a[ 'local_pregnancy_number'], pregnancy__patient__ktp=a['local_patient_ktp']) d = Doctor.objects.get(user__ktp=a['local_doctor_ktp']) v = Validation( doctor=d, photo=p, x=a['x'], y=a['y'], a=a['a'], b=a['b'], tetha=a['tetha'], has_seen=a['has_seen'], is_active=a['is_active'], modify_timestamp=a['modify_timestamp'], create_timestamp=a['create_timestamp'], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) v.save() print 'saving validation', d.user.ktp, p.pregnancy.patient.ktp, p.pregnancy.pregnancy_number, p.photo_number except (Photo.DoesNotExist, Doctor.DoesNotExist) as e: print 'Photo, Doctor not exist' comment_confirmation = [] #Condition: Add as long as KTP + Pregnancy exist. Global photo number may be differ for a in data['add']['comment']: try: d = Doctor.objects.get(user__ktp=a['local_doctor_ktp']) o = Officer.objects.get(user__ktp=a['local_officer_ktp']) p = Patient.objects.get(ktp=a['local_patient_ktp']) last_objects = Comment.objects.filter( patient__ktp=p.ktp).aggregate(Max('comment_number')) last_number = last_objects['comment_number__max'] if last_number is None: last_number = 1 c = Comment( doctor=d, officer=o, patient=p, comment_number=last_number + 1, from_doctor=a['from_doctor'], content=a['content'], has_seen=a['has_seen'], is_active=a['is_active'], modify_timestamp=a['modify_timestamp'], create_timestamp=a['create_timestamp'], server_arrival_timestamp=current_timestamp, server_modify_timestamp=current_timestamp, ) c.save() comment_confirmation.append({ 'local_number': a['local_comment_number'], 'ktp': a['local_patient_ktp'], 'global_number': c.comment_number }) print 'saving comment', p.ktp, c.comment_number except (Doctor.DoesNotExist, Officer.DoesNotExist, Patient.DoesNotExist): print 'Doctor, officer, patient not exist' #update user, exceptional: username, server_create_timestamp for a in data['update']['user']: try: temp = User.objects.get(ktp=a['ktp']) temp.password = a['password'] temp.name = a['name'] temp.address = a['address'] temp.email = a['email'] temp.phone = a['phone'] temp.description = a['description'] temp.is_active = a['is_active'] temp.modify_timestamp = a['modify_timestamp'] temp.create_timestamp = a['create_timestamp'] temp.server_modify_timestamp = current_timestamp temp.save() print 'user updated', a['ktp'] except User.DoesNotExist: print 'user not exist', a['ktp'] #update patient, exceptional: ktp, server_create_timestamp for a in data['update']['patient']: try: temp = Patient.objects.get(ktp=a['ktp']) name = a['name'], temp.address = a['address'], temp.phone = a['phone'], temp.birthdate = a['birthdate'], temp.description = a['description'], temp.is_active = a['is_active'] temp.modify_timestamp = a['modify_timestamp'] temp.create_timestamp = a['create_timestamp'] temp.server_modify_timestamp = current_timestamp temp.save() print 'patient updated', a['ktp'] except Patient.DoesNotExist: print 'patient not exist', a['ktp'] #Update pregnancy, except patient pregnancy_number server_create_timestamp for a in data['update']['pregnancy']: try: temp = Pregnancy.objects.get( patient__ktp=a['patient_id'], pregnancy_number=a['pregnancy_number']) temp.is_finish = a['is_finish'] temp.is_active = a['is_active'] temp.modify_timestamp = a['modify_timestamp'] temp.create_timestamp = a['create_timestamp'] temp.server_modify_timestamp = current_timestamp temp.save() print 'pregnancy updated', a['patient_id'], a['pregnancy_number'] except Pregnancy.DoesNotExist: print 'pregnancy not exist', a['patient_id'], a['pregnancy_number'] #Update doctor, except user_ktp doctor_id server_arrival_timestamp for a in data['update']['doctor']: try: temp = Doctor.objects.get(user__ktp=a['ktp']) temp.is_active = a['is_active'] temp.modify_timestamp = a['modify_timestamp'] temp.create_timestamp = a['create_timestamp'] temp.server_modify_timestamp = current_timestamp temp.save() print 'doctor updated ', a['ktp'] except Doctor.DoesNotExist: print 'doctor not exist', a['ktp'] #Update clinic, except clinic_id server_arrival_timestamp for a in data['update']['clinic']: try: temp = Clinic.objects.get(clinic_id=a['clinic_id']) temp.name = a['name'] temp.address = a['address'] temp.city = a['city'] temp.province = a['province'] temp.phone = a['phone'] temp.description = a['description'] temp.is_active = a['is_active'] temp.modify_timestamp = a['modify_timestamp'] temp.create_timestamp = a['create_timestamp'] temp.server_modify_timestamp = current_timestamp temp.save() print 'clinic updated ', a['clinic_id'] except Clinic.DoesNotExist: print 'clinic not exist', a['clinic_id'] #Update officer, except user_ktp officer_id clinic_id server_arrival_timestamp for a in data['update']['officer']: try: temp = Officer.objects.get(user__ktp=a['ktp']) temp.is_active = a['is_active'] temp.modify_timestamp = a['modify_timestamp'] temp.create_timestamp = a['create_timestamp'] temp.server_modify_timestamp = current_timestamp temp.save() print 'officer updated ', a['ktp'] except Officer.DoesNotExist: print 'officer not exist', a['ktp'] #Update Photo, except patient_ktp, pregnancy_number, photo_number, officer_ktp server_arrival_timestamp for a in data['update']['photo']: try: temp = Photo.objects.get( pregnancy__patient__ktp=a['ktp'], pregnancy__pregnancy_number=a['pregnancy_number'], photo_number=a['photo_number']) temp.analyze_timestamp = a['analyze_timestamp'] temp.filename = a['filename'] temp.x = a['x'] temp.y = a['y'] temp.a = a['a'] temp.b = a['b'] temp.tetha = a['tetha'] temp.scale = a['scale'] temp.method = a['method'] temp.is_active = a['is_active'] temp.modify_timestamp = a['modify_timestamp'] temp.create_timestamp = a['create_timestamp'] temp.server_modify_timestamp = current_timestamp temp.save() print 'Photo updated ', a['ktp'], a['pregnancy_number'], a[ 'photo_number'] except Photo.DoesNotExist: print 'Photo not exist ', a['ktp'], a['pregnancy_number'], a[ 'photo_number'] #Update Serve, except clinic_id patient_ktp server_arrival_timestamp for a in data['update']['serve']: try: temp = Serve.objects.get(clinic__clinic_id=a['clinic_id'], patient__ktp=a['ktp']) temp.is_active = a['is_active'] temp.modify_timestamp = a['modify_timestamp'] temp.create_timestamp = a['create_timestamp'] temp.server_modify_timestamp = current_timestamp temp.save() print 'Serve updated ', a['clinic_id'], a['ktp'] except Serve.DoesNotExist: print 'Serve not exist ', a['clinic_id'], a['ktp'] #Update WorksOn, except clinic_id doctor_ktp server_arrival_timestamp for a in data['update']['works_on']: try: temp = Works_On.objects.get(clinic__clinic_id=a['clinic_id'], doctor__user__ktp=a['ktp']) temp.is_active = a['is_active'] temp.modify_timestamp = a['modify_timestamp'] temp.create_timestamp = a['create_timestamp'] temp.server_modify_timestamp = current_timestamp temp.save() print 'WorksOn updated ', a['clinic_id'], a['ktp'] except Works_On.DoesNotExist: print 'WorksOn not exist ', a['clinic_id'], a['ktp'] #Update Validation, except photo_number, pregnancy_number, patient_ktp server_arrival_timestamp for a in data['update']['validation']: try: temp = Validation.objects.get( doctor__user__ktp=a['doctor_ktp'], photo__photo_number=a['photo_number'], photo__pregnancy__pregnancy_number=a['pregnancy_number'], photo__pregnancy__patient__ktp=a['patient_ktp']) temp.x = a['x'] temp.y = a['y'] temp.a = a['a'] temp.b = a['b'] temp.tetha = a['tetha'] temp.has_seen = a['has_seen'] temp.is_active = a['is_active'] temp.modify_timestamp = a['modify_timestamp'] temp.create_timestamp = a['create_timestamp'] temp.server_modify_timestamp = current_timestamp temp.save() print 'Validation updated ', a['doctor_ktp'], a['photo_number'], a[ 'pregnancy_number'], a['patient_ktp'] except Validation.DoesNotExist: print 'Validation not exist ', a['doctor_ktp'], a[ 'photo_number'], a['pregnancy_number'], a['patient_ktp'] #Update Validation, except officer doctor comment_number patient_ktp server_arrival_timestamp for a in data['update']['comment']: try: temp = Comment.objects.get(patient__ktp=a['patient_ktp'], comment_number=a['comment_number']) temp.from_doctor = a['from_doctor'] temp.content = a['content'] temp.has_seen = a['has_seen'] temp.temp.is_active = a['is_active'] temp.modify_timestamp = a['modify_timestamp'] temp.create_timestamp = a['create_timestamp'] temp.server_modify_timestamp = current_timestamp temp.save() print 'Validation updated ', a['patient_ktp'], a['comment_number'] except Comment.DoesNotExist: print 'Validation updated ', a['patient_ktp'], a['comment_number'] # confirm_doctor = [] # confirm_json = {'user':confirm_user, # 'doctor':confirm_doctor} ###Cari new Addition #table user new_user_json = [] new_users = User.objects.all().filter( server_arrival_timestamp__gt=timestamp, is_active=True) for user in new_users: new_user_json.append(user.get_json()) #table doctor new_doctor_json = [] new_doctors = Doctor.objects.all().filter( server_arrival_timestamp__gt=timestamp, is_active=True) for doctor in new_doctors: new_doctor_json.append(doctor.get_json()) #table clinic new_clinic_json = [] new_clinics = Clinic.objects.all().filter( server_arrival_timestamp__gt=timestamp, is_active=True) for clinic in new_clinics: new_clinic_json.append(clinic.get_json()) #table officer new_officer_json = [] new_officers = Officer.objects.all().filter( server_arrival_timestamp__gt=timestamp, is_active=True) for officer in new_officers: new_officer_json.append(officer.get_json()) #table patient new_patient_json = [] new_patients = Patient.objects.all().filter( server_arrival_timestamp__gt=timestamp, is_active=True) for patient in new_patients: new_patient_json.append(patient.get_json()) #table pregnancy new_pregnancy_json = [] new_pregnancies = Clinic.objects.all().filter( server_arrival_timestamp__gt=timestamp, is_active=True) for pregnancy in new_pregnancies: new_pregnancy_json.append(pregnancy.get_json()) #table photo new_photo_json = [] new_photos = Photo.objects.all().filter( server_arrival_timestamp__gt=timestamp, is_active=True) for photo in new_photos: new_photo_json.append(photo.get_json()) #table serve new_serve_json = [] new_serves = Serve.objects.all().filter( server_arrival_timestamp__gt=timestamp, is_active=True) for serve in new_serves: new_serve_json.append(serve.get_json()) #table works_on new_workson_json = [] new_worksons = Works_On.objects.all().filter( server_arrival_timestamp__gt=timestamp, is_active=True) for workson in new_worksons: new_workson_json.append(workson.get_json()) #table validation new_validation_json = [] new_validations = Validation.objects.all().filter( server_arrival_timestamp__gt=timestamp, is_active=True) for validation in new_validations: new_validation_json.append(validation.get_json()) #table comment new_comment_json = [] new_comments = Comment.objects.all().filter( server_arrival_timestamp__gt=timestamp, is_active=True) for comment in new_comments: new_comment_json.append(comment.get_json()) #table user update_user_json = [] update_users = User.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp)) for user in update_users: update_user_json.append(user.get_json()) #table doctor update_doctor_json = [] update_doctors = Doctor.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp)) for doctor in update_doctors: update_doctor_json.append(doctor.get_json()) #table clinic update_clinic_json = [] update_clinics = Clinic.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp)) for clinic in update_clinics: update_clinic_json.append(clinic.get_json()) #table officer update_officer_json = [] update_officers = Officer.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp)) for officer in update_officers: update_officer_json.append(officer.get_json()) #table patient update_patient_json = [] update_patients = Patient.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp)) for patient in update_patients: update_patient_json.append(patient.get_json()) #table pregnancy update_pregnancy_json = [] update_pregnancies = Clinic.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp)) for pregnancy in update_pregnancies: update_pregnancy_json.append(pregnancy.get_json()) #table photo update_photo_json = [] update_photos = Photo.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp)) for photo in update_photos: update_photo_json.append(photo.get_json()) #table serve update_serve_json = [] update_serves = Serve.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp)) for serve in update_serves: update_serve_json.append(serve.get_json()) #table works_on update_workson_json = [] update_worksons = Works_On.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp)) for workson in update_worksons: update_workson_json.append(workson.get_json()) #table validation update_validation_json = [] update_validations = Validation.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp)) for validation in update_validations: update_validation_json.append(validation.get_json()) #table comment update_comment_json = [] update_comments = Comment.objects.all().filter( Q(is_active=True) & Q(server_modify_timestamp__gt=timestamp) | Q(modify_timestamp__gt=timestamp)) for comment in update_comments: update_comment_json.append(comment.get_json()) return HttpResponse(simplejson.dumps( { 'add': { 'user': new_user_json, 'doctor': new_doctor_json, 'clinic': new_clinic_json, 'officer': new_officer_json, 'patient': new_patient_json, 'pregnancy': new_pregnancy_json, 'photo': new_photo_json, 'serve': new_serve_json, 'works_on': new_workson_json, 'validation': new_validation_json, 'comment': new_comment_json, }, 'update': { 'user': update_user_json, 'doctor': update_doctor_json, 'clinic': update_clinic_json, 'officer': update_officer_json, 'patient': update_patient_json, 'pregnancy': update_pregnancy_json, 'photo': update_photo_json, 'serve': update_serve_json, 'works_on': update_workson_json, 'validation': update_validation_json, 'comment': update_comment_json, }, 'confirm_add': { 'photo': photo_confirmation, 'comment': comment_confirmation, }, }, indent=4), mimetype="application/json")
def handle(self, *args, **options): dcmTree = '/neuro/users/chris/data' if len(args) == 2: if args[0] == 'path': dcmTree = args[1] #for dossier, sous_dossiers, fichiers in os.walk('/neuro/users/yann.mallegol/Documents/internship/chris-db/python_test/dicoms'): for dossier, sous_dossiers, fichiers in os.walk(dcmTree): for fichier in fichiers: fullpath = os.path.join(dossier, fichier) if fichier.endswith('.dcm'): print(fullpath) ds = pydicom.read_file(fullpath) test_SeriesInstanceUID = str(ds.SeriesInstanceUID) test_StudyInstanceUID = str(ds.StudyInstanceUID) test_PatientID = str(ds.PatientID) #print(test_SeriesInstanceUID) #print(test_StudyInstanceUID) #print(test_PatientID) #print('azur') search1 = Series.objects.all().filter( SeriesInstanceUID=test_SeriesInstanceUID) #print(search1) search2 = Study.objects.all().filter( StudyInstanceUID=test_StudyInstanceUID) #print(search2) search3 = Patient.objects.all().filter( PatientID=test_PatientID) #print(search3) #earch_test = Series.objects.get(SeriesInstanceUID=test_SeriesInstanceUID) #print(search) if search1.exists(): print('series already exists') #on fait rien, la SeriesInstanceUID existe deja elif search2.exists(): # la SeriesInstanceUID existe pas et StudyInstanceUID existe deja #creation de toutes les tables sauf 'Patient' et 'Study' ####################### Series table ###################### try: SeriesNumber = ds.SeriesNumber except NameError: SeriesNumber = 'undefined' except AttributeError: SeriesNumber = 'undefined' try: SeriesInstanceUID = str(ds.SeriesInstanceUID) except NameError: SeriesInstanceUID = 'undefined' except AttributeError: SeriesInstanceUID = 'undefined' try: ProtocolName = ds.ProtocolName except NameError: ProtocolName = 'undefined' except AttributeError: ProtocolName = 'undefined' try: Modality = ds.Modality except NameError: Modality = 'undefined' except AttributeError: Modality = 'undefined' try: SeriesDescription = ds.SeriesDescription except NameError: SeriesDescription = 'undefined' except AttributeError: SeriesDescription = 'undefined' try: SeriesTime = ds.SeriesTime except NameError: SeriesTime = 'undefined' except AttributeError: SeriesTime = 'undefined' try: ContrastAgent = ds.ContrastAgent except NameError: ContrastAgent = 'undefined' except AttributeError: ContrastAgent = 'undefined' try: ScanningSequence = ds.ScanningSequence except NameError: ScanningSequence = 'undefined' except AttributeError: ScanningSequence = 'undefined' try: BodyPartExaminated = ds.BodyPartExaminated except NameError: BodyPartExaminated = 'undefined' except AttributeError: BodyPartExaminated = 'undefined' try: AcquisitionNumber = ds.AcquisitionNumber except NameError: AcquisitionNumber = 'undefined' except AttributeError: AcquisitionNumber = 'undefined' b3 = Series(SeriesNumber=SeriesNumber, SeriesInstanceUID=SeriesInstanceUID, ProtocolName=ProtocolName, Modality=Modality, SeriesDescription=SeriesDescription, SeriesTime=SeriesTime, ContrastAgent=ContrastAgent, ScanningSequence=ScanningSequence, BodyPartExaminated=BodyPartExaminated, AcquisitionNumber=AcquisitionNumber, study=search2.first()) b3.save() ############ MR_Params table ############## try: PixelSpacing = ds.PixelSpacing except NameError: PixelSpacing = 'undefined' except AttributeError: PixelSpacing = 'undefined' try: SliceThickness = ds.SliceThickness except NameError: SliceThickness = 'undefined' except AttributeError: SliceThickness = 'undefined' try: EchoTime = ds.EchoTime except NameError: EchoTime = 'undefined' except AttributeError: EchoTime = 'undefined' try: EchoNumbers = ds.EchoNumbers except NameError: EchoNumbers = 'undefined' except AttributeError: EchoNumbers = 'undefined' try: InversionTime = ds.InversionTime except NameError: InversionTime = 'undefined' except AttributeError: InversionTime = 'undefined' try: RepetitionTime = ds.RepetitionTime except NameError: RepetitionTime = 'undefined' except AttributeError: RepetitionTime = 'undefined' b4 = MR_Params(PixelSpacing=PixelSpacing, SliceThickness=SliceThickness, EchoTime=EchoTime, EchoNumbers=EchoNumbers, InversionTime=InversionTime, RepetitionTime=RepetitionTime, modality_params=b3) b4.save() ############# US_Params ############### try: Name = ds.Name except NameError: Name = 'undefined' except AttributeError: Name = 'undefined' b5 = US_Params(Name=Name, modality_params=b3) b5.save() ################ CT_Params #################### try: Name = ds.Name except NameError: Name = 'undefined' except AttributeError: Name = 'undefined' b6 = CT_Params(Name=Name, modality_params=b3) b6.save() elif search3.exists(): #la SeriesInstanceUID existe pas et StudyInstanceUID existe pas et PatientID existe #creation de toutes les tables sauf 'Patient' ################## Study table #################### try: StudyDescription = ds.StudyDescription except NameError: StudyDescription = 'undefined' except AttributeError: StudyDescription = 'undefined' try: StationName = ds.StationName except NameError: StationName = 'undefined' except AttributeError: StationName = 'undefined' try: ManufacturerModelName = ds.ManufacturerModelName except NameError: ManufacturerModelName = 'undefined' except AttributeError: ManufacturerModelName = 'undefined' try: StudyInstanceUID = str(ds.StudyInstanceUID) except NameError: StudyInstanceUID = 'undefined' except AttributeError: StudyInstanceUID = 'undefined' try: Pathology = ds.Pathology except NameError: Pathology = 'undefined' except AttributeError: Pathology = 'undefined' try: StudyDate = ds.StudyDate except NameError: StudyDate = 'undefined' except AttributeError: StudyDate = 'undefined' try: StudyTime = ds.StudyTime except NameError: StudyTime = 'undefined' except AttributeError: StudyTime = 'undefined' try: AccessionNumber = ds.AccessionNumber except NameError: AccessionNumber = 'undefined' except AttributeError: AccessionNumber = 'undefined' try: InstitutionName = ds.InstitutionName except NameError: InstitutionName = 'undefined' except AttributeError: InstitutionName = 'undefined' try: ReferringPhysicianName = ds.ReferringPhysicianName except NameError: ReferringPhysicianName = 'undefined' except AttributeError: ReferringPhysicianName = 'undefined' try: PerformingPhysicianName = ds.PerformingPhysicianName except NameError: PerformingPhysicianName = 'undefined' except AttributeError: PerformingPhysicianName = 'undefined' try: ModalitiesInStudy = ds.ModalitiesInStudy except NameError: ModalitiesInStudy = 'undefined' except AttributeError: ModalitiesInStudy = 'undefined' try: MagneticFieldStrength = ds.MagneticFieldStrength except NameError: MagneticFieldStrength = 0 except AttributeError: MagneticFieldStrength = 0 b2 = Study( StudyDescription=StudyDescription, StationName=StationName, ManufacturerModelName=ManufacturerModelName, StudyInstanceUID=StudyInstanceUID, Pathology=Pathology, StudyDate=StudyDate, StudyTime=StudyTime, AccessionNumber=AccessionNumber, InstitutionName=InstitutionName, ReferringPhysicianName=ReferringPhysicianName, ModalitiesInStudy=ModalitiesInStudy, MagneticFieldStrength=MagneticFieldStrength, patient=search3.first()) b2.save() ####################### Series table ###################### try: SeriesNumber = ds.SeriesNumber except NameError: SeriesNumber = 'undefined' except AttributeError: SeriesNumber = 'undefined' try: SeriesInstanceUID = str(ds.SeriesInstanceUID) except NameError: SeriesInstanceUID = 'undefined' except AttributeError: SeriesInstanceUID = 'undefined' try: ProtocolName = ds.ProtocolName except NameError: ProtocolName = 'undefined' except AttributeError: ProtocolName = 'undefined' try: Modality = ds.Modality except NameError: Modality = 'undefined' except AttributeError: Modality = 'undefined' try: SeriesDescription = ds.SeriesDescription except NameError: SeriesDescription = 'undefined' except AttributeError: SeriesDescription = 'undefined' try: SeriesTime = ds.SeriesTime except NameError: SeriesTime = 'undefined' except AttributeError: SeriesTime = 'undefined' try: ContrastAgent = ds.ContrastAgent except NameError: ContrastAgent = 'undefined' except AttributeError: ContrastAgent = 'undefined' try: ScanningSequence = ds.ScanningSequence except NameError: ScanningSequence = 'undefined' except AttributeError: ScanningSequence = 'undefined' try: BodyPartExaminated = ds.BodyPartExaminated except NameError: BodyPartExaminated = 'undefined' except AttributeError: BodyPartExaminated = 'undefined' try: AcquisitionNumber = ds.AcquisitionNumber except NameError: AcquisitionNumber = 'undefined' except AttributeError: AcquisitionNumber = 'undefined' b3 = Series(SeriesNumber=SeriesNumber, SeriesInstanceUID=SeriesInstanceUID, ProtocolName=ProtocolName, Modality=Modality, SeriesDescription=SeriesDescription, SeriesTime=SeriesTime, ContrastAgent=ContrastAgent, ScanningSequence=ScanningSequence, BodyPartExaminated=BodyPartExaminated, AcquisitionNumber=AcquisitionNumber, study=search2.first()) b3.save() ############ MR_Params table ############## try: PixelSpacing = ds.PixelSpacing except NameError: PixelSpacing = 'undefined' except AttributeError: PixelSpacing = 'undefined' try: SliceThickness = ds.SliceThickness except NameError: SliceThickness = 'undefined' except AttributeError: SliceThickness = 'undefined' try: EchoTime = ds.EchoTime except NameError: EchoTime = 'undefined' except AttributeError: EchoTime = 'undefined' try: EchoNumbers = ds.EchoNumbers except NameError: EchoNumbers = 'undefined' except AttributeError: EchoNumbers = 'undefined' try: InversionTime = ds.InversionTime except NameError: InversionTime = 'undefined' except AttributeError: InversionTime = 'undefined' try: RepetitionTime = ds.RepetitionTime except NameError: RepetitionTime = 'undefined' except AttributeError: RepetitionTime = 'undefined' b4 = MR_Params(PixelSpacing=PixelSpacing, SliceThickness=SliceThickness, EchoTime=EchoTime, EchoNumbers=EchoNumbers, InversionTime=InversionTime, RepetitionTime=RepetitionTime, modality_params=b3) b4.save() ############# US_Params ############### try: Name = ds.Name except NameError: Name = 'undefined' except AttributeError: Name = 'undefined' b5 = US_Params(Name=Name, modality_params=b3) b5.save() ################ CT_Params #################### try: Name = ds.Name except NameError: Name = 'undefined' except AttributeError: Name = 'undefined' b6 = CT_Params(Name=Name, modality_params=b3) b6.save() else: #creation de toutes les tables ################# Patient table ################### try: PatientID = ds.PatientID except NameError: PatientID = 'undefined' except AttributeError: PatientID = 'undefined' try: PatientName = ds.PatientName except NameError: PatientName = 'undefined' except AttributeError: PatientName = 'undefined' try: PatientAge = ds.PatientAge except NameError: PatientAge = 'undefined' except AttributeError: PatientAge = 'undefined' try: PatientSex = ds.PatientSex except NameError: PatientSex = 'undefined' except AttributeError: PatientSex = 'undefined' try: PatientBirthDate = ds.PatientBirthDate except NameError: PatientBirthDate = 'undefined' except AttributeError: PatientBirthDate = 'undefined' try: PatientBirthTime = ds.PatientBirthTime except NameError: PatientBirthTime = 'undefined' except AttributeError: PatientBirthTime = 'undefined' b1 = Patient(PatientID=PatientID, PatientAge=PatientAge, PatientSex=PatientSex, PatientName=PatientName, PatientBirthDate=PatientBirthDate, PatientBirthTime=PatientBirthTime) b1.save() ################## Study table #################### try: StudyDescription = ds.StudyDescription except NameError: StudyDescription = 'undefined' except AttributeError: StudyDescription = 'undefined' try: StationName = ds.StationName except NameError: StationName = 'undefined' except AttributeError: StationName = 'undefined' try: ManufacturerModelName = ds.ManufacturerModelName except NameError: ManufacturerModelName = 'undefined' except AttributeError: ManufacturerModelName = 'undefined' try: StudyInstanceUID = str(ds.StudyInstanceUID) except NameError: StudyInstanceUID = 'undefined' except AttributeError: StudyInstanceUID = 'undefined' try: Pathology = ds.Pathology except NameError: Pathology = 'undefined' except AttributeError: Pathology = 'undefined' try: StudyDate = ds.StudyDate except NameError: StudyDate = 'undefined' except AttributeError: StudyDate = 'undefined' try: StudyTime = ds.StudyTime except NameError: StudyTime = 'undefined' except AttributeError: StudyTime = 'undefined' try: AccessionNumber = ds.AccessionNumber except NameError: AccessionNumber = 'undefined' except AttributeError: AccessionNumber = 'undefined' try: InstitutionName = ds.InstitutionName except NameError: InstitutionName = 'undefined' except AttributeError: InstitutionName = 'undefined' try: ReferringPhysicianName = ds.ReferringPhysicianName except NameError: ReferringPhysicianName = 'undefined' except AttributeError: ReferringPhysicianName = 'undefined' try: PerformingPhysicianName = ds.PerformingPhysicianName except NameError: PerformingPhysicianName = 'undefined' except AttributeError: PerformingPhysicianName = 'undefined' try: ModalitiesInStudy = ds.ModalitiesInStudy except NameError: ModalitiesInStudy = 'undefined' except AttributeError: ModalitiesInStudy = 'undefined' try: MagneticFieldStrength = ds.MagneticFieldStrength except NameError: MagneticFieldStrength = 0 except AttributeError: MagneticFieldStrength = 0 b2 = Study( StudyDescription=StudyDescription, StationName=StationName, ManufacturerModelName=ManufacturerModelName, StudyInstanceUID=StudyInstanceUID, Pathology=Pathology, StudyDate=StudyDate, StudyTime=StudyTime, AccessionNumber=AccessionNumber, InstitutionName=InstitutionName, ReferringPhysicianName=ReferringPhysicianName, ModalitiesInStudy=ModalitiesInStudy, MagneticFieldStrength=MagneticFieldStrength, patient=b1) b2.save() ####################### Series table ###################### try: SeriesNumber = ds.SeriesNumber except NameError: SeriesNumber = 'undefined' except AttributeError: SeriesNumber = 'undefined' try: SeriesInstanceUID = str(ds.SeriesInstanceUID) except NameError: SeriesInstanceUID = 'undefined' except AttributeError: SeriesInstanceUID = 'undefined' try: ProtocolName = ds.ProtocolName except NameError: ProtocolName = 'undefined' except AttributeError: ProtocolName = 'undefined' try: Modality = ds.Modality except NameError: Modality = 'undefined' except AttributeError: Modality = 'undefined' try: SeriesDescription = ds.SeriesDescription except NameError: SeriesDescription = 'undefined' except AttributeError: SeriesDescription = 'undefined' try: SeriesTime = ds.SeriesTime except NameError: SeriesTime = 'undefined' except AttributeError: SeriesTime = 'undefined' try: ContrastAgent = ds.ContrastAgent except NameError: ContrastAgent = 'undefined' except AttributeError: ContrastAgent = 'undefined' try: ScanningSequence = ds.ScanningSequence except NameError: ScanningSequence = 'undefined' except AttributeError: ScanningSequence = 'undefined' try: BodyPartExaminated = ds.BodyPartExaminated except NameError: BodyPartExaminated = 'undefined' except AttributeError: BodyPartExaminated = 'undefined' try: AcquisitionNumber = ds.AcquisitionNumber except NameError: AcquisitionNumber = 'undefined' except AttributeError: AcquisitionNumber = 'undefined' b3 = Series(SeriesNumber=SeriesNumber, SeriesInstanceUID=SeriesInstanceUID, ProtocolName=ProtocolName, Modality=Modality, SeriesDescription=SeriesDescription, SeriesTime=SeriesTime, ContrastAgent=ContrastAgent, ScanningSequence=ScanningSequence, BodyPartExaminated=BodyPartExaminated, AcquisitionNumber=AcquisitionNumber, study=b2) b3.save() ############ MR_Params table ############## try: PixelSpacing = ds.PixelSpacing except NameError: PixelSpacing = 'undefined' except AttributeError: PixelSpacing = 'undefined' try: SliceThickness = ds.SliceThickness except NameError: SliceThickness = 'undefined' except AttributeError: SliceThickness = 'undefined' try: EchoTime = ds.EchoTime except NameError: EchoTime = 'undefined' except AttributeError: EchoTime = 'undefined' try: EchoNumbers = ds.EchoNumbers except NameError: EchoNumbers = 'undefined' except AttributeError: EchoNumbers = 'undefined' try: InversionTime = ds.InversionTime except NameError: InversionTime = 'undefined' except AttributeError: InversionTime = 'undefined' try: RepetitionTime = ds.RepetitionTime except NameError: RepetitionTime = 'undefined' except AttributeError: RepetitionTime = 'undefined' b4 = MR_Params(PixelSpacing=PixelSpacing, SliceThickness=SliceThickness, EchoTime=EchoTime, EchoNumbers=EchoNumbers, InversionTime=InversionTime, RepetitionTime=RepetitionTime, modality_params=b3) b4.save() ############# US_Params ############### try: Name = ds.Name except NameError: Name = 'undefined' except AttributeError: Name = 'undefined' b5 = US_Params(Name=Name, modality_params=b3) b5.save() ################ CT_Params #################### try: Name = ds.Name except NameError: Name = 'undefined' except AttributeError: Name = 'undefined' b6 = CT_Params(Name=Name, modality_params=b3) b6.save() else: print("'%s' n'est pas un fichier dicom" % fichier)