/** * @param $PortionData * @param $CompleteData * @return array|Exception */ public static function Insert($PortionData, $CompleteData) { try { // Validate first self::Validate($PortionData); $Entry = ['supply' => ['@attributes' => ['classCode' => 'SPLY', 'moodCode' => 'INT'], 'templateId' => Component::templateId('2.16.840.1.113883.10.20.22.4.17.2'), 'id' => Component::id(Utilities::UUIDv4()), 'statusCode' => Component::statusCode('completed'), 'repeatNumber' => ['@attributes' => ['value' => $PortionData['repeatNumber']]], 'quantity' => ['@attributes' => ['value' => $PortionData['quantity']]]]]; // MAY contain zero or one [0..1] author if (count($PortionData['Author']) > 0) { $Entry['supply']['author'] = LevelOther\authorParticipation::Insert($PortionData['Author'][0], $CompleteData); } // MAY contain zero or one [0..1] entryRelationship // SHALL contain exactly one [1..1] Instruction (V2) if (count($PortionData['Instruction']) > 0) { $Entry['supply']['entryRelationship'] = ['@attributes' => ['typeCode' => 'SUBJ', 'moodCode' => 'INT'], 'act' => instruction::Insert($PortionData['Instruction'][0], $CompleteData)]; } // MAY contain zero or one [0..1] product // SHALL contain exactly one [1..1] Medication Information (V2) if (count($PortionData['ProductMedicationInformation']) > 0) { $Entry['supply']['product'][] = medicationInformation::Insert($PortionData['ProductMedicationInformation'][0], $CompleteData); } // MAY contain zero or one [0..1] product // SHALL contain exactly one [1..1] Immunization Medication Information (V2) if (count($PortionData['ProductImmunizationMedicationInformation']) > 0) { $Entry['supply']['product'][] = immunizationMedicationInformation::Insert($PortionData['ProductImmunizationMedicationInformation'][0], $CompleteData); } // SHOULD contain zero or one [0..1] effectiveTime // SHALL contain exactly one [1..1] high if (isset($PortionData['effectiveTime_low'])) { $Entry['supply']['effectiveTime'] = ['@attributes' => ['xsi:type' => 'IVL_TS'], 'low' => ['@attributes' => ['value' => $PortionData['effectiveTime_low']]], 'high' => ['@attributes' => ['nullFlavor' => 'UNK']]]; } return $Entry; } catch (Exception $Error) { return $Error; } }
/** * @param $PortionData * @param $CompleteData * @return array|Exception */ public static function Insert($PortionData, $CompleteData) { try { // Validate first self::Validate($PortionData); $Entry = ['supply' => ['@attributes' => ['classCode' => 'SPLY', 'moodCode' => 'EVN'], 'templateId' => Component::templateId('2.16.840.1.113883.10.20.22.4.18.2'), 'id' => Component::id(Utilities::UUIDv4()), 'statusCode' => ['@attributes' => ['code' => $PortionData['statusCode']]], 'effectiveTime' => Component::time($PortionData['effectiveTime']), 'repeatNumber' => $PortionData['repeatNumber'], 'quantity' => ['@attributes' => ['value' => $PortionData['quantity']]]]]; // SHOULD contain zero or one [0..1] quantity // SHALL contain exactly one [1..1] Medication Information (V2) if (count($PortionData['MedicationInformation']) > 0) { $Entry['supply']['product'] = medicationInformation::Insert($PortionData['MedicationInformation'][0], $CompleteData); } // SHOULD contain zero or one [0..1] quantity // SHALL contain exactly one [1..1] Immunization Medication Information (V2) if (count($PortionData['ImmunizationMedicationInformation']) > 0) { $Entry['supply']['product'] = immunizationMedicationInformation::Insert($PortionData['ImmunizationMedicationInformation'][0], $CompleteData); } // MAY contain zero or more [0..*] entryRelationship // SHALL contain exactly one [1..1] Medication Supply Order (V2) if (count($PortionData['MedicationSupplyOrder']) > 0) { foreach ($PortionData['MedicationSupplyOrder'] as $MedicationSupplyOrder) { $Entry['supply']['entryRelationship']['entry'][] = ['@attributes' => ['typeCode' => 'REFR'], medicationSupplyOrder::Insert($MedicationSupplyOrder, $CompleteData)]; } } return $Entry; } catch (Exception $Error) { return $Error; } }
/** * @param $PortionData * @param $CompleteData * @return array|Exception */ public static function Insert($PortionData, $CompleteData) { try { // Validate first self::Validate($PortionData); $Entry = ['substanceAdministration' => ['@attributes' => ['classCode' => 'SBADM', 'moodCode' => 'EVN'], 'templateId' => Component::templateId('2.16.840.1.113883.10.20.22.4.16.2'), 'id' => Component::id(Utilities::UUIDv4()), 'statusCode' => ['@attributes' => ['code' => $PortionData['statusCode']]], 'effectiveTime' => [0 => Component::time($PortionData['effectiveTime_medication_start'], $PortionData['effectiveTime_medication_end']), 1 => ['@attributes' => ['xsi:type' => 'PIVL_TS', 'institutionSpecified' => 'true', 'operator' => 'A'], 'period' => ['@attributes' => ['value' => $PortionData['effectiveTime_medication_frequency'], 'unit' => $PortionData['effectiveTime_medication_frequency_unit']]]]], 'routeCode' => ['@attributes' => ['code' => $PortionData['routeCode'], 'codeSystem' => Utilities::CodingSystemId($PortionData['routeCodeSystemName']), 'codeSystemName' => $PortionData['routeCodeSystemName'], 'displayName' => $PortionData['routeDisplayName']]], 'doseQuantity' => ['@attributes' => ['value' => $PortionData['doseQuantity']]], 'consumable' => medicationInformation::Insert($PortionData['medicationInformation'], $CompleteData)]]; return $Entry; } catch (Exception $Error) { return $Error; } }