Update seeders and models, remove MinimalMasterDataSeeder, update API docs
This commit is contained in:
parent
5085b8270f
commit
f30755c830
@ -13,20 +13,20 @@ class SpecimenSeeder extends Seeder {
|
||||
|
||||
// containerdef
|
||||
$data = [
|
||||
['ConCode' => '1', 'ConName' => 'SST', 'ConDesc' => 'Evacuated blood collection tube, gel separator', 'Additive' => "66", 'ConClass' => '80', 'CreateDate' => "$now"],
|
||||
['ConCode' => '11', 'ConName' => 'Plain', 'ConDesc' => 'Evacuated blood collection tube, no additive/metal-free', 'Additive' => "67", 'ConClass' => '80', 'CreateDate' => "$now"],
|
||||
['ConCode' => '12', 'ConName' => '2Hr PP', 'ConDesc' => 'Evacuated blood collection tube, untuk Glukosa 2 Jam PP', 'Additive' => "68", 'ConClass' => '80', 'CreateDate' => "$now"],
|
||||
['ConCode' => '13', 'ConName' => 'Glukosa Sewaktu', 'ConDesc' => 'Evacuated blood collection tube, untuk Glukosa Sewaktu', 'Additive' => "69", 'ConClass' => '80', 'CreateDate' => "$now"],
|
||||
['ConCode' => '14', 'ConName' => 'GTT 30 menit', 'ConDesc' => 'Evacuated blood collection tube, untuk GTT 30 menit', 'Additive' => "71", 'ConClass' => '80', 'CreateDate' => "$now"],
|
||||
['ConCode' => '15', 'ConName' => 'GTT 60 menit', 'ConDesc' => 'Evacuated blood collection tube, untuk GTT 60 menit', 'Additive' => "71", 'ConClass' => '80', 'CreateDate' => "$now"],
|
||||
['ConCode' => '16', 'ConName' => 'GTT 120 menit', 'ConDesc' => 'Evacuated blood collection tube, untuk GTT 90 menit', 'Additive' => "71", 'ConClass' => '80', 'CreateDate' => "$now"],
|
||||
['ConCode' => '20', 'ConName' => 'RST', 'ConDesc' => 'Evacuated blood collection tube, thrombin/clot activator/gel separator', 'Additive' => "71", 'ConClass' => '80', 'CreateDate' => "$now"],
|
||||
['ConCode' => '101', 'ConName' => 'EDTA - Hematologi', 'ConDesc' => 'Evacuated blood collection tube, K2EDTA/aprotinin', 'Additive' => "71", 'ConClass' => '80', 'CreateDate' => "$now"],
|
||||
['ConCode' => '150', 'ConName' => 'Citrate - Koagulasi', 'ConDesc' => 'Evacuated blood collection tube, untuk koagulasi', 'Additive' => "71", 'ConClass' => '80', 'CreateDate' => "$now"],
|
||||
['ConCode' => '200', 'ConName' => 'Aliquot', 'ConDesc' => 'General specimen container, no additive, non-sterile. Untuk aliquot', 'Additive' => "71", 'ConClass' => '80', 'CreateDate' => "$now"],
|
||||
['ConCode' => '290', 'ConName' => 'Pot Urin', 'ConDesc' => 'Non-sterile urine specimen container IVD', 'Additive' => "71", 'ConClass' => '80', 'CreateDate' => "$now"],
|
||||
['ConCode' => '295', 'ConName' => 'Urine Container', 'ConDesc' => 'Urine specimen container', 'Additive' => "71", 'ConClass' => '80', 'CreateDate' => "$now"],
|
||||
['ConCode' => '900', 'ConName' => 'Packing Pengiriman', 'ConDesc' => 'Specimen Transport Packaging', 'Additive' => "71", 'ConClass' => '81', 'CreateDate' => "$now"],
|
||||
['ConCode' => '1', 'ConName' => 'SST', 'ConDesc' => 'Evacuated blood collection tube, gel separator', 'Additive' => "Hep", 'ConClass' => 'Pri', 'CreateDate' => "$now"],
|
||||
['ConCode' => '11', 'ConName' => 'Plain', 'ConDesc' => 'Evacuated blood collection tube, no additive/metal-free', 'Additive' => "EDTA", 'ConClass' => 'Pri', 'CreateDate' => "$now"],
|
||||
['ConCode' => '12', 'ConName' => '2Hr PP', 'ConDesc' => 'Evacuated blood collection tube, untuk Glukosa 2 Jam PP', 'Additive' => "NaF", 'ConClass' => 'Pri', 'CreateDate' => "$now"],
|
||||
['ConCode' => '13', 'ConName' => 'Glukosa Sewaktu', 'ConDesc' => 'Evacuated blood collection tube, untuk Glukosa Sewaktu', 'Additive' => "NaF", 'ConClass' => 'Pri', 'CreateDate' => "$now"],
|
||||
['ConCode' => '14', 'ConName' => 'GTT 30 menit', 'ConDesc' => 'Evacuated blood collection tube, untuk GTT 30 menit', 'Additive' => "NaF", 'ConClass' => 'Pri', 'CreateDate' => "$now"],
|
||||
['ConCode' => '15', 'ConName' => 'GTT 60 menit', 'ConDesc' => 'Evacuated blood collection tube, untuk GTT 60 menit', 'Additive' => "NaF", 'ConClass' => 'Pri', 'CreateDate' => "$now"],
|
||||
['ConCode' => '16', 'ConName' => 'GTT 120 menit', 'ConDesc' => 'Evacuated blood collection tube, untuk GTT 90 menit', 'Additive' => "NaF", 'ConClass' => 'Pri', 'CreateDate' => "$now"],
|
||||
['ConCode' => '20', 'ConName' => 'RST', 'ConDesc' => 'Evacuated blood collection tube, thrombin/clot activator/gel separator', 'Additive' => "NaF", 'ConClass' => 'Pri', 'CreateDate' => "$now"],
|
||||
['ConCode' => '101', 'ConName' => 'EDTA - Hematologi', 'ConDesc' => 'Evacuated blood collection tube, K2EDTA/aprotinin', 'Additive' => "NaCtrt", 'ConClass' => 'Pri', 'CreateDate' => "$now"],
|
||||
['ConCode' => '150', 'ConName' => 'Citrate - Koagulasi', 'ConDesc' => 'Evacuated blood collection tube, untuk koagulasi', 'Additive' => "NaCtrt", 'ConClass' => 'Pri', 'CreateDate' => "$now"],
|
||||
['ConCode' => '200', 'ConName' => 'Aliquot', 'ConDesc' => 'General specimen container, no additive, non-sterile. Untuk aliquot', 'Additive' => null, 'ConClass' => 'Sec', 'CreateDate' => "$now"],
|
||||
['ConCode' => '290', 'ConName' => 'Pot Urin', 'ConDesc' => 'Non-sterile urine specimen container IVD', 'Additive' => null, 'ConClass' => 'Pri', 'CreateDate' => "$now"],
|
||||
['ConCode' => '295', 'ConName' => 'Urine Container', 'ConDesc' => 'Urine specimen container', 'Additive' => null, 'ConClass' => 'Pri', 'CreateDate' => "$now"],
|
||||
['ConCode' => '900', 'ConName' => 'Packing Pengiriman', 'ConDesc' => 'Specimen Transport Packaging', 'Additive' => null, 'ConClass' => 'Sec', 'CreateDate' => "$now"],
|
||||
];
|
||||
$this->db->table('containerdef')->insertBatch($data);
|
||||
|
||||
|
||||
@ -27,7 +27,7 @@ class LocationModel extends BaseModel {
|
||||
|
||||
public function getLocation($LocationID) {
|
||||
$row = $this->select("location.*, la.Street1, la.Street2, la.PostCode, la.GeoLocationSystem, la.GeoLocationData,
|
||||
prop.AreaGeoID as ProvinceID, prop.AreaName as Province, city.AreaGeoID as CityID, city.AreaName as City, site.SiteID, site.SiteName")
|
||||
la.Province as Province, prop.AreaName as ProvinceLabel, la.City as City, city.AreaName as CityLabel, site.SiteID, site.SiteName")
|
||||
->join("locationaddress la", "location.LocationID=la.LocationID", "left")
|
||||
->join("areageo prop", "la.Province=prop.AreaGeoID", "left")
|
||||
->join("areageo city", "la.City=city.AreaGeoID", "left")
|
||||
|
||||
@ -33,7 +33,7 @@ class AccountModel extends BaseModel {
|
||||
|
||||
public function getAccount($AccountID) {
|
||||
$row = $this->select('account.*, pa.AccountName as ParentName, areageo.AreaName, areageo.AreaGeoID,
|
||||
city.AreaName as CityName, city.AreaGeoID as City, prov.AreaName as ProvName, prov.AreaGeoID as Prov')
|
||||
account.City as City, city.AreaName as CityLabel, account.Province as Province, prov.AreaName as ProvinceLabel')
|
||||
->join('account pa', 'pa.AccountID=account.Parent', 'left')
|
||||
->join('areageo', 'areageo.AreaCode=account.AreaCode', 'left')
|
||||
->join('areageo city', 'city.AreaGeoID=account.City', 'left')
|
||||
|
||||
@ -56,10 +56,10 @@ class PatientModel extends BaseModel {
|
||||
patidt.IdentifierType,
|
||||
patidt.Identifier,
|
||||
patatt.Address,
|
||||
areageo1.AreaGeoID as ProvinceID,
|
||||
areageo1.AreaName as Province,
|
||||
areageo2.AreaGeoID as CityID,
|
||||
areageo2.AreaName as City
|
||||
patient.Province as Province,
|
||||
areageo1.AreaName as ProvinceLabel,
|
||||
patient.City as City,
|
||||
areageo2.AreaName as CityLabel
|
||||
|
||||
")
|
||||
->join('patcom', 'patcom.InternalPID = patient.InternalPID', 'left')
|
||||
|
||||
@ -281,14 +281,24 @@ components:
|
||||
items:
|
||||
$ref: '#/components/schemas/PatAttEntry'
|
||||
Province:
|
||||
type: integer
|
||||
description: Province AreaGeoID (foreign key to areageo table)
|
||||
ProvinceLabel:
|
||||
type: string
|
||||
description: Province area code
|
||||
description: Province name (resolved from areageo)
|
||||
City:
|
||||
type: integer
|
||||
description: City AreaGeoID (foreign key to areageo table)
|
||||
CityLabel:
|
||||
type: string
|
||||
description: City area code
|
||||
description: City name (resolved from areageo)
|
||||
Country:
|
||||
type: string
|
||||
maxLength: 100
|
||||
maxLength: 10
|
||||
description: Country ISO 3-letter code (e.g., IDN, USA)
|
||||
CountryLabel:
|
||||
type: string
|
||||
description: Country name (resolved from valueset)
|
||||
Race:
|
||||
type: string
|
||||
maxLength: 100
|
||||
|
||||
@ -1,100 +0,0 @@
|
||||
<?php
|
||||
namespace App\Database\Seeds;
|
||||
|
||||
use CodeIgniter\Database\Seeder;
|
||||
|
||||
class MinimalMasterDataSeeder extends Seeder {
|
||||
public function run() {
|
||||
$db = \Config\Database::connect();
|
||||
|
||||
$orderStatuses = [
|
||||
['VID' => 1, 'VSetID' => 11, 'VValue' => 'ORD', 'VDesc' => 'Ordered', 'VOrder' => 1],
|
||||
['VID' => 2, 'VSetID' => 11, 'VValue' => 'SCH', 'VDesc' => 'Scheduled', 'VOrder' => 2],
|
||||
['VID' => 3, 'VSetID' => 11, 'VValue' => 'ANA', 'VDesc' => 'Analysis', 'VOrder' => 3],
|
||||
['VID' => 4, 'VSetID' => 11, 'VValue' => 'VER', 'VDesc' => 'Verified', 'VOrder' => 4],
|
||||
['VID' => 5, 'VSetID' => 11, 'VValue' => 'REV', 'VDesc' => 'Reviewed', 'VOrder' => 5],
|
||||
['VID' => 6, 'VSetID' => 11, 'VValue' => 'REP', 'VDesc' => 'Reported', 'VOrder' => 6],
|
||||
];
|
||||
|
||||
$priorities = [
|
||||
['VID' => 1, 'VSetID' => 10, 'VValue' => 'S', 'VDesc' => 'Stat', 'VOrder' => 1],
|
||||
['VID' => 2, 'VSetID' => 10, 'VValue' => 'A', 'VDesc' => 'ASAP', 'VOrder' => 2],
|
||||
['VID' => 3, 'VSetID' => 10, 'VValue' => 'R', 'VDesc' => 'Routine', 'VOrder' => 3],
|
||||
['VID' => 4, 'VSetID' => 10, 'VValue' => 'P', 'VDesc' => 'Preop', 'VOrder' => 4],
|
||||
];
|
||||
|
||||
$specimenTypes = [
|
||||
['VID' => 1, 'VSetID' => 29, 'VValue' => 'BLD', 'VDesc' => 'Blood', 'VOrder' => 1],
|
||||
['VID' => 2, 'VSetID' => 29, 'VValue' => 'SER', 'VDesc' => 'Serum', 'VOrder' => 2],
|
||||
['VID' => 3, 'VSetID' => 29, 'VValue' => 'PLAS', 'VDesc' => 'Plasma', 'VOrder' => 3],
|
||||
['VID' => 4, 'VSetID' => 29, 'VValue' => 'UR', 'VDesc' => 'Urine', 'VOrder' => 4],
|
||||
['VID' => 5, 'VSetID' => 29, 'VValue' => 'CSF', 'VDesc' => 'Cerebrospinal Fluid', 'VOrder' => 5],
|
||||
];
|
||||
|
||||
$testTypes = [
|
||||
['VID' => 1, 'VSetID' => 27, 'VValue' => 'TEST', 'VDesc' => 'Test', 'VOrder' => 1],
|
||||
['VID' => 2, 'VSetID' => 27, 'VValue' => 'PARAM', 'VDesc' => 'Parameter', 'VOrder' => 2],
|
||||
['VID' => 3, 'VSetID' => 27, 'VValue' => 'CALC', 'VDesc' => 'Calculated Test', 'VOrder' => 3],
|
||||
['VID' => 4, 'VSetID' => 27, 'VValue' => 'GROUP', 'VDesc' => 'Group Test', 'VOrder' => 4],
|
||||
['VID' => 5, 'VSetID' => 27, 'VValue' => 'TITLE', 'VDesc' => 'Title', 'VOrder' => 5],
|
||||
];
|
||||
|
||||
$genders = [
|
||||
['VID' => 1, 'VSetID' => 3, 'VValue' => '1', 'VDesc' => 'Female', 'VOrder' => 1],
|
||||
['VID' => 2, 'VSetID' => 3, 'VValue' => '2', 'VDesc' => 'Male', 'VOrder' => 2],
|
||||
['VID' => 3, 'VSetID' => 3, 'VValue' => '3', 'VDesc' => 'Unknown', 'VOrder' => 3],
|
||||
];
|
||||
|
||||
foreach ($orderStatuses as $row) {
|
||||
$exists = $db->table('valueset')->where('VSetID', $row['VSetID'])->where('VValue', $row['VValue'])->get()->getRow();
|
||||
if (!$exists) {
|
||||
$db->table('valueset')->insert($row);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($priorities as $row) {
|
||||
$exists = $db->table('valueset')->where('VSetID', $row['VSetID'])->where('VValue', $row['VValue'])->get()->getRow();
|
||||
if (!$exists) {
|
||||
$db->table('valueset')->insert($row);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($specimenTypes as $row) {
|
||||
$exists = $db->table('valueset')->where('VSetID', $row['VSetID'])->where('VValue', $row['VValue'])->get()->getRow();
|
||||
if (!$exists) {
|
||||
$db->table('valueset')->insert($row);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($testTypes as $row) {
|
||||
$exists = $db->table('valueset')->where('VSetID', $row['VSetID'])->where('VValue', $row['VValue'])->get()->getRow();
|
||||
if (!$exists) {
|
||||
$db->table('valueset')->insert($row);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($genders as $row) {
|
||||
$exists = $db->table('valueset')->where('VSetID', $row['VSetID'])->where('VValue', $row['VValue'])->get()->getRow();
|
||||
if (!$exists) {
|
||||
$db->table('valueset')->insert($row);
|
||||
}
|
||||
}
|
||||
|
||||
$counterExists = $db->table('counter')->where('CounterName', 'ORDER')->get()->getRow();
|
||||
if (!$counterExists) {
|
||||
$db->table('counter')->insert(['CounterName' => 'ORDER', 'CounterValue' => 1]);
|
||||
}
|
||||
|
||||
$siteExists = $db->table('site')->where('SiteCode', '00')->get()->getRow();
|
||||
if (!$siteExists) {
|
||||
$db->table('site')->insert([
|
||||
'SiteCode' => '00',
|
||||
'SiteName' => 'Main Laboratory',
|
||||
'SiteType' => 'PHL',
|
||||
'CreateDate' => date('Y-m-d H:i:s')
|
||||
]);
|
||||
}
|
||||
|
||||
echo "Minimal master data seeded successfully.\n";
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user