`

【原】[HL7_V2.4] 申请检验检查的ORM_O01消息消息解析 NHapi

阅读更多
/// <summary>
        /// 将受到的消息进行处理
        /// 分解更新到数据库
        /// </summary>
        private void ManageReceiveMsg(AsyTcpSocketClient client, string msg)
        {
            /*
            #region 测试数据
            
           msg = "MSH|^~\\&|VERBENA|PRAEZISION|RIS|SYNCROMED|20070828135556+0000||ORM^O01|5366|P|2.4|\r"
                + "PID|||410379^^^SILVANI||GONZI^||19200202000000+0000|F|||VIA MARZO, 13 ^BG^MARCO^BG24027^100^M^ITALIA016144~VIA MARZO, 13 ^BG^MARCO^BG24027^100^H^ITALIA016144~^BG^MARCO^BG^^100^B^ITALIA016144|||||||AAAAAAAAAAAAAAAA|228PP272||||016144|||100^ITALIA|\r"
                + "PD1|||ASL DELLA PROVINCIA DI BERGAMO^^^^^^^^^301030|\r"
                + "PV1||E|||||133429^ROSSI^ENRICO|9PRZMARK^VERDI^MARCO^^^^^^^^^^9||114||||||||||||||||||||||||||||||||A02|||||||||V|\r"
                + "ORC|NW|67262|5189|2007100059|PR||1.000000^^^20070828135500+0000||20070828135500+0000|||9PRZMARK^VERDI^MARCO|||||114^PRONTO SOCCORSO|\r"
                + "OBR|1|67262|5189|1223^RX PELVI (bacino)||||||||3|RRR|||9PRZMARK^VERDI||||||||1|||1.000000^^^20070828135500+0000|\r"
                + "OBR|2|67262|5189|1220^RX SPALLA||||||||3|RRR|||9PRZMARK^VERDI||||||||1|||1.000000^^^20070828135500+0000|\r"
                + "OBR|2|67262|5189|1220^RX SPALLA||||||||3|RRR|||9PRZMARK^VERDI||||||||1|||1.000000^^^20070828135500+0000|\r"
                + "ORC|NW|67262|5190|2007100059|PR||1.000000^^^20070828135500+0000||20070828135500+0000|||9PRZMARK^VERDI^MARCO|||||114^PRONTO SOCCORSO|\r"
                + "OBR|1|67262|5190|8001^TAC CAPO||||||||3|RRR|||9PRZMARK^VERDI||||||||7|||1.000000^^^20070828135500+0000|\r";
              // + "ZDS|1.2.300.4005|a^b^c|Application|DICOM|"; 
           
            
            #endregion
            */


            try
            {
                NHapi.Base.Parser.PipeParser Parser = new NHapi.Base.Parser.PipeParser();
                NHapi.Base.Model.IMessage m = Parser.Parse(msg);
                NHapi.Model.V24.Message.ORM_O01 orm001 = m as NHapi.Model.V24.Message.ORM_O01;

                if (orm001 != null)
                {

                    MSGModel msgModel = new MSGModel();
                    MSGBLL msgBll = new MSGBLL();

                    msgModel.MSG_ID = getGUID();
                    msgModel.CONTEXT = msg;
                    msgModel.SERVER_MANAGE = 0;
                    msgModel.CREATE_ID = "HL7Server";
                    msgModel.CREATE_TIME = DateTime.Now;

                    msgBll.Add(msgModel);

                    PATIENT_INFOModel patientInfoModel = UpdatePatientInfo(client, orm001, msgModel);

                    UpdateRequisitions(orm001, patientInfoModel);
                }
                else
                {
                    WriteLog("服务器", "异常情况", "见详细说明", "客户端的数据格式不正确『" + msg + "』");
                }
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        
        }


//-----------------------------------------------------------------

 private PATIENT_INFOModel UpdatePatientInfo(AsyTcpSocketClient client, AtlastigerHl7api.Model.V24.Message.ORM_O01 orm001, MSGModel msgModel)
        {
            PATIENT_INFOModel patientInfoModel = new PATIENT_INFOModel();
            PATIENT_INFOBLL patientInfoBll = new PATIENT_INFOBLL();

            patientInfoModel.PATIENT_INFO_ID = getGUID();
            patientInfoModel.MSG_ID = msgModel.MSG_ID;
            patientInfoModel.MSG_HL7ID = orm001.MSH.MessageControlID.Value;
            patientInfoModel.SETIDPID = orm001.PATIENT.PID.SetIDPID.Value;
            patientInfoModel.PATIENT_IDENTIFIER_LIST0 = orm001.PATIENT.PID.GetPatientIdentifierList(0).ID.Value;
            patientInfoModel.PATIENT_IDENTIFIER_LIST1 = orm001.PATIENT.PID.GetPatientIdentifierList(1).ID.Value;
            patientInfoModel.PATIENT_IDENTIFIER_LIST2 = orm001.PATIENT.PID.GetPatientIdentifierList(2).ID.Value;
            patientInfoModel.PATIENT_IDENTIFIER_LIST3 = orm001.PATIENT.PID.GetPatientIdentifierList(3).ID.Value;
            patientInfoModel.PATIENT_NAME = orm001.PATIENT.PID.GetPatientName(0).GivenName.Value;
            patientInfoModel.DATETIME_OF_BIRTH = orm001.PATIENT.PID.DateTimeOfBirth.TimeOfAnEvent.Value;
            patientInfoModel.ADMINISTRATIVE_SEX = orm001.PATIENT.PID.AdministrativeSex.Value;
            patientInfoModel.PATIENT_ADDRESS = orm001.PATIENT.PID.GetPatientAddress(0).OtherGeographicDesignation.Value;
            patientInfoModel.COUNTY_CODE = orm001.PATIENT.PID.CountyCode.Value;
            patientInfoModel.PHONE_NUMBER_HOME0 = orm001.PATIENT.PID.GetPhoneNumberHome(0).Get9999999X99999CAnyText.Value;
            patientInfoModel.PHONE_NUMBER_HOME = orm001.PATIENT.PID.GetPhoneNumberHome(1).Get9999999X99999CAnyText.Value;
            patientInfoModel.PHONE_NUMBER_BUSINESS0 = orm001.PATIENT.PID.GetPhoneNumberBusiness(0).Get9999999X99999CAnyText.Value;
            patientInfoModel.PHONE_NUMBER_BUSINESS1 = orm001.PATIENT.PID.GetPhoneNumberBusiness(1).Get9999999X99999CAnyText.Value;
            patientInfoModel.SSN_NUMBER_PATIENT = orm001.PATIENT.PID.SSNNumberPatient.Value;
            patientInfoModel.CITIZENSHIP_IDENTIFIER = orm001.PATIENT.PID.GetCitizenship(0).Identifier.Value;
            patientInfoModel.CITIZENSHIP_TEXT = orm001.PATIENT.PID.GetCitizenship(0).Text.Value;
            patientInfoModel.NATIONALITY_IDENTIFIER = orm001.PATIENT.PID.Nationality.Identifier.Value;
            patientInfoModel.NATIONALITY_TEXT = orm001.PATIENT.PID.Nationality.Text.Value;
            patientInfoModel.SETIDPV1 = orm001.PATIENT.PATIENT_VISIT.PV1.SetIDPV1.Value;
            patientInfoModel.PATIENT_CLASS = orm001.PATIENT.PATIENT_VISIT.PV1.PatientClass.Value;
            patientInfoModel.ASSIGNED_PATIENT_L_STATUS = orm001.PATIENT.PATIENT_VISIT.PV1.AssignedPatientLocation.LocationStatus.Value;
            patientInfoModel.ASSIGNED_PATIENT_L_POINTOFCARE = orm001.PATIENT.PATIENT_VISIT.PV1.AssignedPatientLocation.PointOfCare.Value;
            patientInfoModel.ASSIGNED_PATIENT_L_ROOM = orm001.PATIENT.PATIENT_VISIT.PV1.AssignedPatientLocation.Room.Value;
            patientInfoModel.ASSIGNED_PATIENT_L_BED = orm001.PATIENT.PATIENT_VISIT.PV1.AssignedPatientLocation.Bed.Value;
            patientInfoModel.ATTENDING_DOCTOR_IDNUM = orm001.PATIENT.PATIENT_VISIT.PV1.GetAttendingDoctor(0).IDNumber.Value;
            patientInfoModel.ATTENDING_DOCTOR_GIVENAME = orm001.PATIENT.PATIENT_VISIT.PV1.GetAttendingDoctor(0).GivenName.Value;
            patientInfoModel.READMISSION_INDICATOR = orm001.PATIENT.PATIENT_VISIT.PV1.ReAdmissionIndicator.Value;
            patientInfoModel.ADMIT_SOURCE = orm001.PATIENT.PATIENT_VISIT.PV1.AdmitSource.Value;
            patientInfoModel.VIP_INDICATOR = orm001.PATIENT.PATIENT_VISIT.PV1.VIPIndicator.Value;
            patientInfoModel.VISIT_NUMBER = orm001.PATIENT.PATIENT_VISIT.PV1.VisitNumber.ID.Value;
            patientInfoModel.ADMIT_DATETIME = orm001.PATIENT.PATIENT_VISIT.PV1.AdmitDateTime.TimeOfAnEvent.Value;
            patientInfoModel.DISCHARGE_DATETIME = orm001.PATIENT.PATIENT_VISIT.PV1.GetDischargeDateTime(0).TimeOfAnEvent.Value;
            patientInfoModel.SYSTEM_IP = client.RemoteIP;
            patientInfoModel.SYSTEM_SORT = client.RemotePort.ToString();
            //patientInfoModel.SYSTEM_SORT_SUB
            patientInfoModel.RIS_MANAGE = 0;
            patientInfoModel.SERVICE_MANAGE = 0;
            patientInfoModel.ACTIONTYPE = "1";

            patientInfoBll.Add(patientInfoModel);
            return patientInfoModel;
        }


//-------------------------------------------------------------------

        /// <summary>
        /// ORC OBR 申请单  REQUISITIONS
        /// 分解申请单信息
        /// </summary>
        /// <param name="orm001"></param>
        /// <param name="patientInfoModel"></param>
        private void UpdateRequisitions(AtlastigerHl7api.Model.V24.Message.ORM_O01 orm001, PATIENT_INFOModel patientInfoModel)
        {

            int ORC_NUM = orm001.ORDERRepetitionsUsed;

            List<REQUISITIONSModel> requisitionsModels = new List<REQUISITIONSModel>();

            REQUISITIONSModel requisitionsModel = new REQUISITIONSModel();
            REQUISITIONSBLL requisitionsBll = new REQUISITIONSBLL();

            for (int i = 0; i < ORC_NUM; i++)
            {
                requisitionsModel.REQUISITIONS_ID = getGUID();
                requisitionsModel.PATIENT_INFO_ID = patientInfoModel.PATIENT_INFO_ID;
                requisitionsModel.ORDER_CONTROL = orm001.GetORDER(i).ORC.OrderControl.Value;
                requisitionsModel.PLACER_ORDER_NUMBER = orm001.GetORDER(i).ORC.PlacerOrderNumber.EntityIdentifier.Value;
                requisitionsModel.FILLER_ORDER_NUMBER = orm001.GetORDER(i).ORC.FillerOrderNumber.EntityIdentifier.Value;
                requisitionsModel.PLACER_GROUP_NUMBER = orm001.GetORDER(i).ORC.PlacerGroupNumber.EntityIdentifier.Value;
                requisitionsModel.ORDER_STATUS = orm001.GetORDER(i).ORC.OrderStatus.Value;
                requisitionsModel.RESPONSE_FLAG = orm001.GetORDER(i).ORC.ResponseFlag.Value;
                requisitionsModel.QUANTITY_TIMING = orm001.GetORDER(i).ORC.GetQuantityTiming(0).CNVaule;
                requisitionsModel.TQ_QUANTITY = orm001.GetORDER(i).ORC.GetQuantityTiming(0).Quantity.Quantity.Value;
                requisitionsModel.TQ_INTERVAL = orm001.GetORDER(i).ORC.GetQuantityTiming(0).Interval.RepeatPattern.Value;
                requisitionsModel.TQ_DURATION = orm001.GetORDER(i).ORC.GetQuantityTiming(0).Duration.Value;
                requisitionsModel.TQ_START_DATETIME = orm001.GetORDER(i).ORC.GetQuantityTiming(0).StartDateTime.TimeOfAnEvent.Value;
                requisitionsModel.TQ_END_DATETIME = orm001.GetORDER(i).ORC.GetQuantityTiming(0).EndDateTime.TimeOfAnEvent.Value;
                requisitionsModel.TQ_PRIORITY = orm001.GetORDER(i).ORC.GetQuantityTiming(0).Priority.Value;
                requisitionsModel.TQ_CONDITION = orm001.GetORDER(i).ORC.GetQuantityTiming(0).Condition.Value;
                requisitionsModel.TQ_TEXT = orm001.GetORDER(i).ORC.GetQuantityTiming(0).Text.Value;
                requisitionsModel.TQ_CONJUNCTION_COMPONENT = orm001.GetORDER(i).ORC.GetQuantityTiming(0).ConjunctionComponent.Value;
                requisitionsModel.TQ_ORDER_SEQUENCING = orm001.GetORDER(i).ORC.GetQuantityTiming(0).OrderSequencing.SequenceResultsFlag.Value;
                requisitionsModel.TQ_OCCURRENCE_DURATION = orm001.GetORDER(i).ORC.GetQuantityTiming(0).OccurrenceDuration.Identifier.Value;
                requisitionsModel.TQ_TOTAL_OCCURENCES = orm001.GetORDER(i).ORC.GetQuantityTiming(0).TotalOccurences.Value;
                requisitionsModel.PARENT = orm001.GetORDER(i).ORC.Parent.ParentSPlacerOrderNumber.EntityIdentifier.Value;
                requisitionsModel.DATETIME_OF_TRANSACTION = orm001.GetORDER(i).ORC.DateTimeOfTransaction.TimeOfAnEvent.Value;
                requisitionsModel.ENTERED_BY = orm001.GetORDER(i).ORC.GetEnteredBy(0).IDNumber.Value;
                requisitionsModel.VERIFIED_BY = orm001.GetORDER(i).ORC.GetVerifiedBy(0).IDNumber.Value;
                requisitionsModel.ORDERING_PROVIDER = orm001.GetORDER(i).ORC.GetOrderingProvider(0).IDNumber.Value;
                requisitionsModel.ENTERER_LOCATION = orm001.GetORDER(i).ORC.EntererSLocation.CNVaule;
                requisitionsModel.ENTERER_LOCATION_STATUS = orm001.GetORDER(i).ORC.EntererSLocation.LocationStatus.Value;
                requisitionsModel.ENTERER_LOCATION_ROOM = orm001.GetORDER(i).ORC.EntererSLocation.Room.Value;
                requisitionsModel.ENTERER_LOCATION_POINT = orm001.GetORDER(i).ORC.EntererSLocation.PointOfCare.Value;
                requisitionsModel.CALL_BACK_PHONE_NUMBER = orm001.GetORDER(i).ORC.GetCallBackPhoneNumber(0).Get9999999X99999CAnyText.Value;
                requisitionsModel.ORDER_EFFECTIVE_DATETIME = orm001.GetORDER(i).ORC.OrderEffectiveDateTime.TimeOfAnEvent.Value;
                requisitionsModel.ORDER_CONTROL_CODE_REASON = orm001.GetORDER(i).ORC.OrderControlCodeReason.Identifier.Value;
                requisitionsModel.ENTERING_ORGANIZATION = orm001.GetORDER(i).ORC.EnteringOrganization.Identifier.Value;
                requisitionsModel.ENTERING_DEVICE = orm001.GetORDER(i).ORC.EnteringDevice.Identifier.Value;
                requisitionsModel.ACTION_BY = orm001.GetORDER(i).ORC.GetActionBy(0).IDNumber.Value;
                requisitionsModel.ADVANCED_BENEFICIARY_NOTICE_CODE = orm001.GetORDER(i).ORC.AdvancedBeneficiaryNoticeCode.Identifier.Value;
                requisitionsModel.ORDERING_FACILITY_NAME = orm001.GetORDER(i).ORC.GetOrderingFacilityName(0).IDNumber.Value;
                requisitionsModel.ORDERING_FACILITY_ADDRESS = orm001.GetORDER(i).ORC.GetOrderingFacilityAddress(0).OtherGeographicDesignation.Value;
                requisitionsModel.ORDERING_FACILITY_PHONE_NUMBER = orm001.GetORDER(i).ORC.GetOrderingFacilityPhoneNumber(0).Get9999999X99999CAnyText.Value;
                requisitionsModel.ORDERING_PROVIDER_ADDRESS = orm001.GetORDER(i).ORC.GetOrderingProviderAddress(0).OtherGeographicDesignation.Value;
                requisitionsModel.ORDER_STATUS_MODIFIER = orm001.GetORDER(i).ORC.OrderStatusModifier.Identifier.Value;
                requisitionsModel.SET_ID_OBR = orm001.GetORDER(i).ORDER_DETAIL.OBR.SetIDOBR.Value;
                requisitionsModel.PLACER_ORDER_NUMBER1 = orm001.GetORDER(i).ORDER_DETAIL.OBR.PlacerOrderNumber.EntityIdentifier.Value;
                requisitionsModel.FILLER_ORDER_NUMBER1 = orm001.GetORDER(i).ORDER_DETAIL.OBR.FillerOrderNumber.EntityIdentifier.Value;
                requisitionsModel.UNIVERSAL_SERVICE_IDENTIFIER = orm001.GetORDER(i).ORDER_DETAIL.OBR.UniversalServiceIdentifier.Identifier.Value;
                requisitionsModel.PRIORITY = orm001.GetORDER(i).ORDER_DETAIL.OBR.Priority.Value;
                requisitionsModel.REQUESTED_DATETIME = orm001.GetORDER(i).ORDER_DETAIL.OBR.RequestedDateTime.TimeOfAnEvent.Value;
                requisitionsModel.OBSERVATION_DATETIME = orm001.GetORDER(i).ORDER_DETAIL.OBR.ObservationDateTime.TimeOfAnEvent.Value;
                requisitionsModel.OBSERVATION_END_DATETIME = orm001.GetORDER(i).ORDER_DETAIL.OBR.ObservationEndDateTime.TimeOfAnEvent.Value;
                requisitionsModel.COLLECTION_VOLUME = orm001.GetORDER(i).ORDER_DETAIL.OBR.CollectionVolume.Quantity.Value;
                requisitionsModel.COLLECTOR_IDENTIFIER = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetCollectorIdentifier(0).IDNumber.Value;
                requisitionsModel.SPECIMEN_ACTION_CODE = orm001.GetORDER(i).ORDER_DETAIL.OBR.SpecimenActionCode.Value;
                requisitionsModel.DANGER_CODE = orm001.GetORDER(i).ORDER_DETAIL.OBR.DangerCode.Identifier.Value;
                requisitionsModel.RELEVANT_CLINICAL_INFO = orm001.GetORDER(i).ORDER_DETAIL.OBR.RelevantClinicalInfo.Value;
                requisitionsModel.SPECIMEN_RECEIVED_DATETIME = orm001.GetORDER(i).ORDER_DETAIL.OBR.SpecimenReceivedDateTime.TimeOfAnEvent.Value;
                requisitionsModel.SPECIMEN_SOURCE = orm001.GetORDER(i).ORDER_DETAIL.OBR.SpecimenSource.SpecimenSourceNameOrCode.Identifier.Value;
                requisitionsModel.ORDERING_PROVIDER1 = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetOrderingProvider(0).IDNumber.Value;
                requisitionsModel.ORDER_CALLBACK_PHONE_NUMBER = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetOrderCallbackPhoneNumber(0).Get9999999X99999CAnyText.Value;
                requisitionsModel.PLACER_FIELD_1 = orm001.GetORDER(i).ORDER_DETAIL.OBR.PlacerField1.Value;
                requisitionsModel.PLACER_FIELD_2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.PlacerField2.Value;
                requisitionsModel.FILLER_FIELD_1 = orm001.GetORDER(i).ORDER_DETAIL.OBR.FillerField1.Value;
                requisitionsModel.FILLER_FIELD_2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.FillerField2.Value;
                requisitionsModel.RESULTS_STATUS_CHNG_DATETIME = orm001.GetORDER(i).ORDER_DETAIL.OBR.ResultsRptStatusChngDateTime.TimeOfAnEvent.Value;
                requisitionsModel.CHARGE_TO_PRACTICE = orm001.GetORDER(i).ORDER_DETAIL.OBR.ChargeToPractice.DollarAmount.Quantity.Value;
                requisitionsModel.DIAGNOSTIC_SERV_SECT_ID = orm001.GetORDER(i).ORDER_DETAIL.OBR.DiagnosticServSectID.Value;
                requisitionsModel.RESULT_STATUS = orm001.GetORDER(i).ORDER_DETAIL.OBR.ResultStatus.Value;
                requisitionsModel.PARENT_RESULT = orm001.GetORDER(i).ORDER_DETAIL.OBR.ParentResult.OBX3ObservationIdentifierOfParentResult.Identifier.Value;
                requisitionsModel.QUANTITY_TIMING2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetQuantityTiming(0).CNVaule;
                requisitionsModel.TQ_QUANTITY2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetQuantityTiming(0).Quantity.Quantity.Value;
                requisitionsModel.TQ_INTERVAL2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetQuantityTiming(0).Interval.RepeatPattern.Value;
                requisitionsModel.TQ_DURATION2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetQuantityTiming(0).Duration.Value;
                requisitionsModel.TQ_START_DATETIME2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetQuantityTiming(0).StartDateTime.TimeOfAnEvent.Value;
                requisitionsModel.TQ_END_DATETIME2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetQuantityTiming(0).EndDateTime.TimeOfAnEvent.Value;
                requisitionsModel.TQ_PRIORITY2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetQuantityTiming(0).Priority.Value;
                requisitionsModel.TQ_CONDITION2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetQuantityTiming(0).Condition.Value;
                requisitionsModel.TQ_TEXT2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetQuantityTiming(0).Text.Value;
                requisitionsModel.TQ_CONJUNCTION_COMPONENT1 = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetQuantityTiming(0).ConjunctionComponent.Value;
                requisitionsModel.TQ_ORDER_SEQUENCING2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetQuantityTiming(0).OrderSequencing.SequenceResultsFlag.Value;
                requisitionsModel.TQ_OCCURRENCE_DURATION2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetQuantityTiming(0).OccurrenceDuration.Identifier.Value;
                requisitionsModel.TQ_TOTAL_OCCURENCES2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetQuantityTiming(0).TotalOccurences.Value;
                requisitionsModel.RESULT_COPIES_TO = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetResultCopiesTo(0).IDNumber.Value;
                requisitionsModel.PARENT2 = orm001.GetORDER(i).ORDER_DETAIL.OBR.Parent.ParentSPlacerOrderNumber.EntityIdentifier.Value;
                requisitionsModel.TRANSPORTATION_MODE = orm001.GetORDER(i).ORDER_DETAIL.OBR.TransportationMode.Value;
                requisitionsModel.REASON_FOR_STUDY = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetReasonForStudy(0).Identifier.Value;
                requisitionsModel.PRINCIPAL_RESULT_INTERPRETER = orm001.GetORDER(i).ORDER_DETAIL.OBR.PrincipalResultInterpreter.CNVaule;
                requisitionsModel.ASSISTANT_RESULT_INTERPRETER = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetAssistantResultInterpreter(0).CNVaule;
                requisitionsModel.TECHNICIAN = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetTechnician(0).CNVaule;
                requisitionsModel.TECHNICIAN_STATUS = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetTechnician(0).LocationStatus.Value;
                requisitionsModel.TECHNICIAN_ROOM = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetTechnician(0).Room.Value;
                requisitionsModel.TECHNICIAN_POINT = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetTechnician(0).PointOfCare.Value;
                requisitionsModel.TRANSCRIPTIONIST = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetTranscriptionist(0).CNVaule;
                requisitionsModel.SCHEDULED_DATETIME = orm001.GetORDER(i).ORDER_DETAIL.OBR.ScheduledDateTime.TimeOfAnEvent.Value;
                requisitionsModel.NUMBER_OF_SAMPLE_CONTAINERS = orm001.GetORDER(i).ORDER_DETAIL.OBR.NumberOfSampleContainers.Value;
                requisitionsModel.TRANSPORT_LOGISTICS_OF_COLLECTED_SAMPLE = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetTransportLogisticsOfCollectedSample(0).Identifier.Value;
                requisitionsModel.COLLECTOR_COMMENT = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetCollectorSComment(0).Identifier.Value;
                requisitionsModel.TRANSPORT_ARRANGEMENT_RESPONSIBILITY = orm001.GetORDER(i).ORDER_DETAIL.OBR.TransportArrangementResponsibility.Identifier.Value;
                requisitionsModel.TRANSPORT_ARRANGED = orm001.GetORDER(i).ORDER_DETAIL.OBR.TransportArranged.Value;
                requisitionsModel.ESCORT_REQUIRED = orm001.GetORDER(i).ORDER_DETAIL.OBR.EscortRequired.Value;
                requisitionsModel.PLANNED_PATIENT_TRANSPORT_COMMENT = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetPlannedPatientTransportComment(0).Identifier.Value;
                requisitionsModel.PROCEDURE_CODE = orm001.GetORDER(i).ORDER_DETAIL.OBR.ProcedureCode.Identifier.Value;
                requisitionsModel.PROCEDURE_CODE_MODIFIER = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetProcedureCodeModifier(0).Identifier.Value;
                requisitionsModel.PLACER_SUPPLEMENTAL_SERVICE_INFORMATION = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetPlacerSupplementalServiceInformation(0).Identifier.Value;
                requisitionsModel.FILLER_SUPPLEMENTAL_SERVICE_INFORMATION = orm001.GetORDER(i).ORDER_DETAIL.OBR.GetFillerSupplementalServiceInformation(0).Identifier.Value;

                requisitionsBll.Add(requisitionsModel);
            }
        }


0
0
分享到:
评论

相关推荐

    HL7 V2.4 中文文档参考大全

    HL7 V2.4 是HL7标准的第四次主要更新,它在V2.3的基础上进一步完善了消息结构和交互模型。该版本引入了更多的消息类型,支持更复杂的医疗业务场景,并对原有的消息格式进行了优化,提高了数据传输的准确性和效率。V...

    HL7 V2.4 CN完整版.rar_HL7_HL7中文完整_HL7中文完整版_HL7协议_hl7 协议下载

    V2.4引入了各种消息类型,如ADT(患者管理),ORM(药房订单),ORM^O01(电子处方),RSP(查询响应)等,用于满足不同的医疗业务需求。 2. **字段和段**:消息由一系列字段和段组成。字段是数据的基本单位,段则...

    HL7 V2.4中文完整版

    在HL7 V2.4中文完整版中,你可以找到一系列规范文件,这些文件详细定义了如何构建和解析HL7消息。以下是一些关键的知识点: 1. **消息结构**:HL7 V2.4定义了一种基于字段的分隔符格式,每个消息由一系列字段组成,...

    HL7 V2.4 中文版

    2. **消息类型**:HL7 V2.4支持多种消息类型,如ADT、ORM(Order Message)、RDE(Pharmacy Dispense Encounter)、OML(Laboratory Test Results)等,覆盖了从患者管理到实验室结果报告的多个领域。 3. **触发...

    使用NHapi解析hl7

    7. **验证消息**:NHapi还包含一个消息验证器,可以检查消息是否符合HL7标准。这在确保消息正确性方面非常有用。 8. **扩展与自定义**:NHapi允许开发者自定义消息结构和数据类型,以适应特定的业务需求。 在实际...

    HL7 V2.4 CN完整版

    4. **事件触发**:HL7消息通常由特定的事件触发,如新患者入院(ADT_A01)或实验室结果报告(ORM_O01)。每个消息类型都有其特定的用途和结构。 5. **编码系统**:HL7 V2.4中广泛使用了不同的编码系统,如LOINC...

    HL7-2.4版本协议.docx

    3. 支持更多消息类型:HL7 2.4不仅包含了基本的患者信息交换,还扩展到样本申请、测试结果、质控结果等更多临床应用场景,提升了医疗信息系统的互操作性。 二、万孚生物HL7接口应用 广州万孚生物技术股份有限公司...

    HL7 V2.4 中文版全部资料

    7. **事务处理**:通过MSH(消息头)段中的消息控制ID和重复标志,HL7 V2.4支持事务处理,确保消息的可靠传输和幂等性。 8. **错误处理**:HL7 V2.4提供ACK(确认)消息,用来回应接收到的消息,确认其正确接收或...

    HL7解析 Java

    `org.hapi.hl7v2.model.Message`类是所有HL7消息的基础,你可以通过实例化特定的消息类型(如ORM、ADT等)来创建新消息。 4. **字段访问**:HAPI提供了丰富的API来访问和修改消息中的字段。例如,`Message`对象的`...

    HL7 V2.4 英文版本

    1. **CH02.doc (Chapter 2)**: 通常会涵盖HL7标准的基础概念和架构,包括消息结构、字段定义以及如何解析和生成HL7消息的基本规则。这部分可能讨论了消息模型、事件驱动通信和标准的组成部分。 2. **CH03.doc ...

    医疗通信协议HL7通用解析包

    这个"医疗通信协议HL7通用解析包"就是针对HL7标准开发的一个工具,它可以帮助开发者解析和处理HL7格式的数据。 HL7协议分为多个版本,其中V2是最广泛使用的版本,它基于ASCII文本,采用消息结构,由一系列的段...

    hl7Receiver.rar_DEMO_HL7_hl7 Receiver_hl7 delphi

    在这个“hl7Receiver.rar_DEMO_HL7_hl7 Receiver_hl7 delphi”压缩包中,包含了一个用Delphi编程语言编写的HL7接收器的演示程序。 Delphi是一种基于Object Pascal的集成开发环境(IDE),以其高效能、跨平台和丰富...

    HL7 V2.4 CN完整版源码.zip

    V2.4是HL7协议的一个版本,它包含了详细的通信协议、数据类型和消息结构,使得医疗设备、软件和其他信息系统能够有效地共享患者数据。这个"HL7 V2.4 CN完整版源码.zip"文件很可能包含了实现HL7 V2.4标准的源代码,...

    HL7 V2.4 CN完整版 03 患者管理V24CH03e-c

    **HL7 V2.4 CN完整版 - 患者管理** HL7(Health Level Seven)是一种国际标准,用于在医疗保健系统之间交换电子健康信息。HL7 V2.4 CN是中国版本,针对中国医疗环境进行了本地化适配。本章节主要关注的是患者管理...

    7edit V2.4

    它可以检查消息是否符合HL7标准,发现潜在的语法错误或数据不一致,极大地提高了数据质量。此外,它还支持批量处理,能够一次性处理大量HL7消息,这对于数据迁移、系统集成或大规模数据分析任务来说极其高效。 安装...

    HL7_lib-JAVA

    HL7_v2.x 版本是该库主要支持的协议版本,它包括一系列的消息类型,如 ADT(Admit/Discharge/Transfer),ORM(Order Request Message),ORU(Observation Report Unsolicited)等,这些消息涵盖了病人管理、实验室...

    最新的HL7 协议

    6. **应用结构**:HL7 V2.4引入了MSH(Message Header)段,它是每个消息的开头,包含消息的元数据,如发送者、接收者、消息类型和时间戳。 7. **错误处理**:协议规定了错误报告和处理机制,使得系统间通信更为...

    HL7v2.3.1 医疗健康标准

    1. **消息结构**:HL7 v2.3.1定义了一套标准的消息结构,包括消息头、消息类型、触发事件、消息段等元素。消息由一系列的字段组成,每个字段都有固定的长度和数据类型,确保了数据的一致性和可读性。 2. **消息类型...

    HL7+E-Learning

    2. **消息类型**:HL7 v2.4定义了多种消息类型,如ORM(Order Message)用于处理医疗订单,ADT(Admission/Discharge/Transfer)用于管理病人的入院、出院和转院信息等。 3. **数据类型**:HL7 v2.4提供了丰富的...

    黑马代码生成器HeimaCodeUtil_V2.4.32

    【标题解析】 "黑马代码生成器HeimaCodeUtil_V2.4.32" 是一个专门用于自动化生成Java项目基础代码的工具,版本号为2.4.32。这个工具是由黑马程序员(Heima)开发的,旨在提高开发效率,减少手动编写常见框架如SSM...

Global site tag (gtag.js) - Google Analytics