From eb9a75c226b005e5989d2a6494160ebe0dd9d9e7 Mon Sep 17 00:00:00 2001 From: Kseniya Tomskikh Date: Tue, 17 Oct 2017 16:17:47 +0700 Subject: Fixed custom formats for rep and tric --- .../utils/CustomSwaggerJsonFormats.scala | 158 +++++++++++---------- .../fakes/entities/recordprocessing.scala | 4 +- .../fakes/entities/treatmentmatching.scala | 129 ++++++++++++++++- 3 files changed, 210 insertions(+), 81 deletions(-) (limited to 'src/main') diff --git a/src/main/scala/xyz/driver/pdsuicommon/utils/CustomSwaggerJsonFormats.scala b/src/main/scala/xyz/driver/pdsuicommon/utils/CustomSwaggerJsonFormats.scala index b122fab..004a914 100644 --- a/src/main/scala/xyz/driver/pdsuicommon/utils/CustomSwaggerJsonFormats.scala +++ b/src/main/scala/xyz/driver/pdsuicommon/utils/CustomSwaggerJsonFormats.scala @@ -4,20 +4,16 @@ import java.time.{LocalDate, LocalDateTime} import io.swagger.models.properties.Property import spray.json.JsValue -import xyz.driver.pdsuicommon.domain.{LongId, StringId, TextJson, UuidId} +import xyz.driver.pdsuicommon.domain.{LongId, StringId, UuidId} import xyz.driver.pdsuidomain.entities._ -import xyz.driver.pdsuidomain.formats.json.sprayformats.arm._ -import xyz.driver.pdsuidomain.formats.json.sprayformats.criterion._ -import xyz.driver.pdsuidomain.formats.json.sprayformats.intervention._ -import xyz.driver.pdsuidomain.formats.json.sprayformats.hypothesis._ -import xyz.driver.pdsuidomain.formats.json.sprayformats.studydesign._ -import xyz.driver.pdsuidomain.formats.json.sprayformats.trial._ -import xyz.driver.pdsuidomain.formats.json.sprayformats.trialhistory._ -import xyz.driver.pdsuidomain.formats.json.sprayformats.trialissue._ +import xyz.driver.pdsuidomain.formats.json.sprayformats.ListResponse._ import xyz.driver.core.swagger.CustomSwaggerJsonConverter._ import xyz.driver.entities.patient.CancerType import xyz.driver.pdsuicommon.concurrent.BridgeUploadQueue +import xyz.driver.pdsuidomain.entities.export.patient.ExportPatientWithLabels +import xyz.driver.pdsuidomain.entities.export.trial.ExportTrialWithLabels import xyz.driver.pdsuidomain.fakes.entities.common +import xyz.driver.pdsuidomain.formats.json.sprayformats.ListResponse import xyz.driver.pdsuidomain.formats.json.sprayformats.bridgeuploadqueue._ import xyz.driver.pdsuidomain.formats.json.sprayformats.record._ import xyz.driver.pdsuidomain.formats.json.sprayformats.document._ @@ -47,35 +43,48 @@ object CustomSwaggerJsonFormats { classOf[DocumentType] -> documentTypeFormat.write(common.nextDocumentType()) ) - val customTrialCurationProperties = immutable.Map[Class[_], Property]( - classOf[Trial.Status] -> stringProperty(), - classOf[TrialHistory.Action] -> stringProperty(), - classOf[TrialHistory.State] -> stringProperty() - ) ++ customCommonProperties - - val customTrialCurationObjectsExamples = immutable.Map[Class[_], JsValue]( - classOf[Trial] -> trialWriter.write(xyz.driver.pdsuidomain.fakes.entities.trialcuration.nextTrial()), - classOf[Arm] -> armFormat.write(xyz.driver.pdsuidomain.fakes.entities.trialcuration.nextArm()), - classOf[TrialHistory] -> trialHistoryFormat.write( - xyz.driver.pdsuidomain.fakes.entities.trialcuration.nextTrialHistory()), - classOf[TrialIssue] -> trialIssueWriter.write( - xyz.driver.pdsuidomain.fakes.entities.trialcuration.nextTrialIssue()), - classOf[RichCriterion] -> richCriterionFormat.write( - xyz.driver.pdsuidomain.fakes.entities.trialcuration.nextRichCriterion()), - classOf[InterventionWithArms] -> interventionFormat.write( - xyz.driver.pdsuidomain.fakes.entities.trialcuration.nextInterventionWithArms()), - classOf[InterventionType] -> interventionTypeFormat.write( - xyz.driver.pdsuidomain.fakes.entities.trialcuration.nextInterventionType()), - classOf[Hypothesis] -> hypothesisFormat.write( - xyz.driver.pdsuidomain.fakes.entities.trialcuration.nextHypothesis()), - classOf[StudyDesign] -> studyDesignFormat.write( - xyz.driver.pdsuidomain.fakes.entities.trialcuration.nextStudyDesign()) - ) + object trialcuration { + import xyz.driver.pdsuidomain.fakes.entities.trialcuration._ + import xyz.driver.pdsuidomain.fakes.entities.export + import xyz.driver.pdsuidomain.formats.json.sprayformats.export._ + import xyz.driver.pdsuidomain.formats.json.sprayformats.arm._ + import xyz.driver.pdsuidomain.formats.json.sprayformats.criterion._ + import xyz.driver.pdsuidomain.formats.json.sprayformats.intervention._ + import xyz.driver.pdsuidomain.formats.json.sprayformats.hypothesis._ + import xyz.driver.pdsuidomain.formats.json.sprayformats.studydesign._ + import xyz.driver.pdsuidomain.formats.json.sprayformats.trial._ + import xyz.driver.pdsuidomain.formats.json.sprayformats.trialhistory._ + import xyz.driver.pdsuidomain.formats.json.sprayformats.trialissue._ + + val customTrialCurationProperties = immutable.Map[Class[_], Property]( + classOf[Trial.Status] -> stringProperty(), + classOf[TrialHistory.Action] -> stringProperty(), + classOf[TrialHistory.State] -> stringProperty() + ) ++ customCommonProperties + + val customTrialCurationObjectsExamples = immutable.Map[Class[_], JsValue]( + classOf[Trial] -> trialWriter.write(nextTrial()), + classOf[Arm] -> armFormat.write(nextArm()), + classOf[TrialHistory] -> trialHistoryFormat.write(nextTrialHistory()), + classOf[TrialIssue] -> trialIssueWriter.write(nextTrialIssue()), + classOf[RichCriterion] -> richCriterionFormat.write(nextRichCriterion()), + classOf[InterventionWithArms] -> interventionFormat.write(nextInterventionWithArms()), + classOf[InterventionType] -> interventionTypeFormat.write(nextInterventionType()), + classOf[Hypothesis] -> hypothesisFormat.write(nextHypothesis()), + classOf[StudyDesign] -> studyDesignFormat.write(nextStudyDesign()), + classOf[ExportTrialWithLabels] -> trialWithLabelsFormat.write(export.nextExportTrialWithLabels()) + ) + } - // records-processing-service - object Rep { + object recordprocessing { import xyz.driver.pdsuidomain.fakes.entities.recordprocessing._ - import xyz.driver.pdsuidomain.formats.json.sprayformats._ + import xyz.driver.pdsuidomain.fakes.entities.export + import xyz.driver.pdsuidomain.formats.json.sprayformats.export._ + import xyz.driver.pdsuidomain.formats.json.sprayformats.documentissue._ + import xyz.driver.pdsuidomain.formats.json.sprayformats.documenthistory._ + import xyz.driver.pdsuidomain.formats.json.sprayformats.recordissue._ + import xyz.driver.pdsuidomain.formats.json.sprayformats.recordhistory._ + import xyz.driver.pdsuidomain.formats.json.sprayformats.extracteddata._ val customRecordProcessingProperties = immutable.Map[Class[_], Property]( classOf[MedicalRecord.Status] -> stringProperty(), @@ -87,37 +96,15 @@ object CustomSwaggerJsonFormats { classOf[DocumentHistory.State] -> stringProperty() ) ++ customCommonProperties - val customRepObjectsExamples = immutable.Map[Class[_], JsValue]( - classOf[Document] -> - document.documentFormat.write(nextDocument()), - classOf[DocumentIssue] -> - documentissue.documentIssueFormat.write(nextDocumentIssue()), - classOf[DocumentHistory] -> - documenthistory.documentHistoryFormat.write(nextDocumentHistory()), - classOf[TextJson[List[MedicalRecord.Meta]]] -> - record.recordMetaFormat.write(nextMedicalRecordMetaJson()), - classOf[MedicalRecord] -> - record.recordFormat.write(nextMedicalRecord()), - classOf[MedicalRecordIssue] -> - recordissue.recordIssueFormat.write(nextMedicalRecordIssue()), - classOf[MedicalRecordHistory] -> - recordhistory.recordHistoryFormat.write(nextMedicalRecordHistory()), - classOf[RichExtractedData] -> - extracteddata.extractedDataFormat.write(nextRichExtractedData()), - classOf[MedicalRecord.Meta] -> - record.recordMetaTypeFormat.write(nextMedicalRecordMeta()), - classOf[TextJson[Document.Meta]] -> - document.fullDocumentMetaFormat.write(nextDocumentMetaJson()), - classOf[ExtractedData.Meta] -> - extracteddata.extractedDataMetaFormat.write(nextExtractedDataMeta()), - classOf[ExtractedData.Meta.Evidence] -> - extracteddata.metaEvidenceFormat.write(nextExtractedDataMetaEvidence()), - classOf[ExtractedData.Meta.Keyword] -> - extracteddata.metaKeywordFormat.write(nextExtractedDataMetaKeyword()), - classOf[ExtractedData.Meta.TextLayerPosition] -> - extracteddata.metaTextLayerPositionFormat.write(nextExtractedDataMetaTextLayerPosition()), - classOf[TextJson[ExtractedData.Meta]] -> - extracteddata.fullExtractedDataMetaFormat.write(nextExtractedDataMetaJson()) + val customRecordProcessingObjectsExamples = immutable.Map[Class[_], JsValue]( + classOf[Document] -> documentFormat.write(nextDocument()), + classOf[DocumentIssue] -> documentIssueFormat.write(nextDocumentIssue()), + classOf[DocumentHistory] -> documentHistoryFormat.write(nextDocumentHistory()), + classOf[MedicalRecord] -> recordFormat.write(nextMedicalRecord()), + classOf[MedicalRecordIssue] -> recordIssueFormat.write(nextMedicalRecordIssue()), + classOf[MedicalRecordHistory] -> recordHistoryFormat.write(nextMedicalRecordHistory()), + classOf[RichExtractedData] -> extractedDataFormat.write(nextRichExtractedData()), + classOf[ExportPatientWithLabels] -> patientWithLabelsFormat.write(export.nextExportPatientWithLabels()) ) ++ customCommonObjectsExamples } @@ -139,17 +126,32 @@ object CustomSwaggerJsonFormats { ) ++ customCommonProperties val customTreatmentMatchingObjectsExamples = immutable.Map[Class[_], JsValue]( - classOf[Patient] -> patientWriter.write(nextPatient()), - classOf[RichPatientLabel] -> richPatientLabelWriter.write(nextRichPatientLabel()), - classOf[PatientLabel] -> patientLabelDefiningCriteriaWriter.write(nextPatientLabel()), - classOf[RichPatientCriterion] -> patientCriterionWriter.write(nextRichPatientCriterion()), - classOf[DraftPatientCriterion] -> draftPatientCriterionFormat.write(nextDraftPatientCriterion()), - classOf[PatientLabelEvidenceView] -> patientLabelEvidenceWriter.write(nextPatientLabelEvidenceView()), - classOf[RichPatientEligibleTrial] -> patientEligibleTrialWriter.write(nextRichPatientEligibleTrial()), - classOf[PatientHypothesis] -> patientHypothesisWriter.write(nextPatientHypothesis()), - classOf[RichPatientHypothesis] -> richPatientHypothesisWriter.write(nextRichPatientHypothesis()), - classOf[PatientHistory] -> patientHistoryFormat.write(nextPatientHistory()), - classOf[PatientIssue] -> patientIssueWriter.write(nextPatientIssue()) + classOf[Patient] -> patientWriter.write(nextPatient()), + classOf[RichPatientLabel] -> richPatientLabelWriter.write(nextRichPatientLabel()), + classOf[PatientLabel] -> patientLabelDefiningCriteriaWriter.write(nextPatientLabel()), + classOf[RichPatientCriterion] -> patientCriterionWriter.write(nextRichPatientCriterion()), + classOf[DraftPatientCriterion] -> draftPatientCriterionFormat.write(nextDraftPatientCriterion()), + classOf[PatientLabelEvidenceView] -> patientLabelEvidenceWriter.write(nextPatientLabelEvidenceView()), + classOf[RichPatientEligibleTrial] -> patientEligibleTrialWriter.write(nextRichPatientEligibleTrial()), + classOf[PatientHypothesis] -> patientHypothesisWriter.write(nextPatientHypothesis()), + classOf[RichPatientHypothesis] -> richPatientHypothesisWriter.write(nextRichPatientHypothesis()), + classOf[PatientHistory] -> patientHistoryFormat.write(nextPatientHistory()), + classOf[PatientIssue] -> patientIssueWriter.write(nextPatientIssue()), + classOf[ListResponse[Patient]] -> listResponseWriter[Patient].write(nextPatientListResponse()), + classOf[ListResponse[PatientLabel]] -> listResponseWriter[PatientLabel].write(nextPatientLabelListResponse()), + classOf[ListResponse[RichPatientLabel]] -> listResponseWriter[RichPatientLabel].write( + nextRichPatientLabelListResponse()), + classOf[ListResponse[RichPatientCriterion]] -> listResponseWriter[RichPatientCriterion].write( + nextRichPatientCriterionListResponse()), + classOf[ListResponse[PatientLabelEvidenceView]] -> listResponseWriter[PatientLabelEvidenceView].write( + nextPatientLabelEvidenceViewListResponse()), + classOf[ListResponse[RichPatientEligibleTrial]] -> listResponseWriter[RichPatientEligibleTrial].write( + nextRichPatientEligibleTrialListResponse()), + classOf[ListResponse[RichPatientHypothesis]] -> listResponseWriter[RichPatientHypothesis].write( + nextRichPatientHypothesisListResponse()), + classOf[ListResponse[PatientIssue]] -> listResponseWriter[PatientIssue].write(nextPatientIssuesListResponse()), + classOf[ListResponse[PatientHistory]] -> listResponseWriter[PatientHistory].write( + nextPatientHistoryListResponse()) ) ++ customCommonObjectsExamples } diff --git a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/recordprocessing.scala b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/recordprocessing.scala index 279ea38..d2a648c 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/recordprocessing.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/recordprocessing.scala @@ -105,7 +105,7 @@ object recordprocessing { def nextMedicalRecord(): MedicalRecord = MedicalRecord( id = nextLongId[MedicalRecord], status = nextMedicalRecordStatus(), - previousStatus = None, + previousStatus = nextOption(generators.oneOf[MedicalRecord.Status](MedicalRecord.Status.AllPrevious)), assignee = nextOption(nextStringId), previousAssignee = nextOption(nextStringId), lastActiveUserId = nextOption(nextStringId), @@ -168,7 +168,7 @@ object recordprocessing { Document( id = nextLongId[Document], status = nextDocumentStatus(), - previousStatus = None, + previousStatus = nextOption(generators.oneOf[Document.Status](Document.Status.AllPrevious)), assignee = nextOption(nextStringId[User]), previousAssignee = nextOption(nextStringId[User]), lastActiveUserId = nextOption(nextStringId[User]), diff --git a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala index 35aa5ef..b0ca136 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/fakes/entities/treatmentmatching.scala @@ -4,6 +4,7 @@ import xyz.driver.entities.labels.Label import xyz.driver.fakes import xyz.driver.pdsuicommon.domain.{LongId, StringId, User} import xyz.driver.pdsuidomain.entities._ +import xyz.driver.pdsuidomain.formats.json.sprayformats.ListResponse import xyz.driver.pdsuidomain.services.PatientCriterionService.{DraftPatientCriterion, RichPatientCriterion} import xyz.driver.pdsuidomain.services.PatientEligibleTrialService.RichPatientEligibleTrial import xyz.driver.pdsuidomain.services.PatientHypothesisService.RichPatientHypothesis @@ -27,7 +28,7 @@ object treatmentmatching { name = nextFullName[Patient], dob = nextLocalDate, assignee = generators.nextOption(nextStringId[User]), - previousStatus = generators.nextOption(nextPatientStatus), + previousStatus = generators.nextOption(generators.oneOf[Patient.Status](Patient.Status.AllPrevious)), previousAssignee = generators.nextOption(nextStringId[User]), lastActiveUserId = generators.nextOption(nextStringId[User]), isUpdateRequired = generators.nextBoolean(), @@ -164,4 +165,130 @@ object treatmentmatching { created = nextLocalDateTime ) + def nextPatientListResponse(): ListResponse[Patient] = { + val xs: Seq[Patient] = Seq.fill(3)(nextPatient()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextRichPatientLabelListResponse(): ListResponse[RichPatientLabel] = { + val xs: Seq[RichPatientLabel] = Seq.fill(3)(nextRichPatientLabel()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextPatientLabelListResponse(): ListResponse[PatientLabel] = { + val xs: Seq[PatientLabel] = Seq.fill(3)(nextPatientLabel()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextRichPatientCriterionListResponse(): ListResponse[RichPatientCriterion] = { + val xs: Seq[RichPatientCriterion] = Seq.fill(3)(nextRichPatientCriterion()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextRichPatientEligibleTrialListResponse(): ListResponse[RichPatientEligibleTrial] = { + val xs: Seq[RichPatientEligibleTrial] = Seq.fill(3)(nextRichPatientEligibleTrial()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextRichPatientHypothesisListResponse(): ListResponse[RichPatientHypothesis] = { + val xs: Seq[RichPatientHypothesis] = Seq.fill(3)(nextRichPatientHypothesis()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextPatientLabelEvidenceViewListResponse(): ListResponse[PatientLabelEvidenceView] = { + val xs: Seq[PatientLabelEvidenceView] = Seq.fill(3)(nextPatientLabelEvidenceView()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextPatientIssuesListResponse(): ListResponse[PatientIssue] = { + val xs: Seq[PatientIssue] = Seq.fill(3)(nextPatientIssue()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + + def nextPatientHistoryListResponse(): ListResponse[PatientHistory] = { + val xs: Seq[PatientHistory] = Seq.fill(3)(nextPatientHistory()) + val pageSize = generators.nextInt(xs.size, 1) + ListResponse( + items = xs, + meta = ListResponse.Meta( + itemsCount = xs.size, + pageNumber = generators.nextInt(xs.size / pageSize), + pageSize = pageSize, + lastUpdate = generators.nextOption(nextLocalDateTime) + ) + ) + } + } -- cgit v1.2.3