public function processBulkEntryAction()
 {
     $params = $this->_getParam('immunizations');
     $config = Zend_Registry::get('config');
     $useImmunizationInventory = (string) $config->useImmunizationInventory == 'true' ? true : false;
     $data = false;
     if (is_array($params)) {
         foreach ($params as $key => $values) {
             $patientImmunization = new PatientImmunization();
             $patientImmunization->populateWithArray($values);
             $patientImmunization->dateAdministered = date('Y-m-d H:i', strtotime($patientImmunization->dateAdministered));
             $patientImmunization->persist();
             if ($useImmunizationInventory && strlen($patientImmunization->lot) > 0) {
                 $inventory = new ImmunizationInventory();
                 $inventory->immunization = $patientImmunization->immunization;
                 $inventory->populateByImmunization();
                 $inventory->immunization = $patientImmunization->immunization;
                 $inventory->immunizationInventoryId = 0;
                 $inventory->lotNumber = $patientImmunization->lot;
                 $inventory->expiration = '';
                 $inventory->manufacturer = '';
                 $inventory->mvxCode = '';
                 $inventory->immunizationId = $patientImmunization->patientImmunizationId;
                 $inventory->persist();
                 $patientImmunization->lot = $inventory->immunizationInventoryId;
                 $patientImmunization->persist();
             }
         }
         $data = true;
     }
     $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
     $json->suppressExit = true;
     $json->direct($data);
 }
 public static function generateRXA($patientImmunization, $raw = false)
 {
     // RXA|0|1|201004051600|201004051600|33^Pneumococcal Polysaccharide^CVX|0.5|ml^milliliter^ISO+||||||||1039A||MSD^Merck^MVX||||A
     if (!$patientImmunization instanceof PatientImmunization) {
         $patientImmunizationId = (int) $patientImmunization;
         $patientImmunization = new PatientImmunization();
         $patientImmunization->patientImmunizationId = $patientImmunizationId;
         $patientImmunization->populate();
     }
     $dateAdministration = date('YmdHi', strtotime($patientImmunization->dateAdministered));
     $immunizationInventory = new ImmunizationInventory();
     $immunizationInventory->immunizationId = (int) $patientImmunization->patientImmunizationId;
     $populated = false;
     if ($patientImmunization->lot > 0) {
         $immunizationInventory->immunizationInventoryId = (int) $patientImmunization->lot;
         $populated = $immunizationInventory->populate();
     }
     if (!$populated) {
         $immunizationInventory->populateByImmunizationId();
     }
     $rxa = array('RXA');
     $rxa[1] = 0;
     // RXA-1: Give Sub-ID Counter fixed value
     $rxa[2] = 1;
     // RXA-2: Administration Sub-ID Counter fixed value
     $rxa[3] = $dateAdministration;
     // RXA-3.1: Date/Time Start of Administration
     $rxa[4] = $dateAdministration;
     // RXA-4.1: Date/Time End of Administration
     $rxa5 = array();
     // RXA-5: Administered Code
     // code
     $rxa5[] = $patientImmunization->code;
     // RXA-5.1: Identifier
     // immunization
     $rxa5[] = $patientImmunization->immunization;
     // RXA-5.2: Text
     // CVX
     $rxa5[] = 'CVX';
     // RXA-5.3: Name of Coding System fixed value (CVX or HL70292)
     $rxa[5] = implode('^', $rxa5);
     // amount
     $rxa[6] = $patientImmunization->amount;
     // RXA-6: Administered Amount
     $units = $patientImmunization->units;
     $unitsOfMeasure = DataTables::$unitsOfMeasure;
     $tmp = strtoupper($units);
     $unitsText = isset($unitsOfMeasure[$tmp]) ? $unitsOfMeasure[$tmp] : '';
     $rxa7 = array();
     // RXA-7: Administered Units (ml, etc)
     $rxa7[] = $units;
     // RXA-7.1: Identifier
     $rxa7[] = $unitsText;
     // RXA-7.2: Text
     $codeName = strlen($units) > 0 ? 'ISO+' : '';
     $rxa7[] = $codeName;
     // RXA-7.3: Name of Coding System
     if ($codeName == '') {
         $rxa7 = array();
     }
     $rxa[7] = implode('^', $rxa7);
     $rxa[8] = '';
     $rxa[9] = '';
     $rxa[10] = '';
     $rxa[11] = '';
     $rxa[12] = '';
     $rxa[13] = '';
     $rxa[14] = '';
     // lot number
     $rxa[15] = $immunizationInventory->lotNumber;
     // RXA-15: Substance Lot Numbers
     $rxa[16] = '';
     $mvxCode = $immunizationInventory->mvxCode;
     $manufacturer = $immunizationInventory->manufacturer;
     $rxa17 = array();
     // RXA-17: Substance Manufacturer Name
     // manufacturer
     $rxa17[] = $mvxCode;
     // RXA-17.1: Identifier
     // mvxCode
     $rxa17[] = $manufacturer;
     // RXA-17.2: Text
     $rxa17[] = 'MVX';
     // RXA-17.3: Name of Coding System fixed value (MVX or HL70227)
     if (!strlen($mvxCode) > 0 && !strlen($manufacturer) > 0) {
         $rxa17 = array();
     }
     $rxa[17] = implode('^', $rxa17);
     $rxa[18] = '';
     $rxa[19] = '';
     $rxa[20] = '';
     $rxa[21] = 'A';
     // RXA-21: Action Code fixed value
     if ($raw) {
         return $rxa;
     }
     return implode('|', $rxa);
 }
 public function processDeleteImmunizationAction()
 {
     $code = $this->_getParam('code');
     $patientImmunization = new PatientImmunization();
     $patientImmunization->code = $code;
     $patientImmunization->setPersistMode(WebVista_Model_ORM::DELETE);
     $patientImmunization->persist();
     $data = true;
     $json = Zend_Controller_Action_HelperBroker::getStaticHelper('json');
     $json->suppressExit = true;
     $json->direct($data);
 }