Business-ID-POM
view release on metacpan or search on metacpan
lib/Business/ID/POM.pm view on Meta::CPAN
elsif ($res->{drug_dosage_form_code} eq '48') { $res->{drug_dosage_form_id} = "tetes telinga (48)" }
elsif ($res->{drug_dosage_form_code} eq '49') { $res->{drug_dosage_form_id} = "infus (49)" }
elsif ($res->{drug_dosage_form_code} eq '53') { $res->{drug_dosage_form_id} = "supositoria, ovula (53)" }
elsif ($res->{drug_dosage_form_code} eq '56') { $res->{drug_dosage_form_id} = "nasal spray (56)" }
elsif ($res->{drug_dosage_form_code} eq '58') { $res->{drug_dosage_form_id} = "rectal tube (58)" }
elsif ($res->{drug_dosage_form_code} eq '62') { $res->{drug_dosage_form_id} = "inhalasi (62)" }
elsif ($res->{drug_dosage_form_code} eq '63') { $res->{drug_dosage_form_id} = "tablet kunyah (63)" }
elsif ($res->{drug_dosage_form_code} eq '81') { $res->{drug_dosage_form_id} = "tablet dispersi (81)" }
else { log_warn "Unknown drug dosage form code ($res->{drug_dosage_form_code}), known codes include 01/02/04/10/etc" }
} elsif ($res->{category_code} =~ /\AS[DIL]\z/) {
$res->{category_id} =
$res->{category_code} eq 'SD' ? 'Suplemen kesehatan (S), dalam negeri (D)' :
$res->{category_code} eq 'SI' ? 'Suplemen kesehatan (S), impor (I)' :
'Suplemen kesehatan (S), lisensi (L)';
$res->{number} =~ /\A([0-9]{9})\z/
or return [400, "S number needs to be 9-digit number"];
} elsif ($res->{category_code} =~ /\AN(.?)\z/) {
$res->{cosmetic_category_code} = $1;
$res->{category_id} = "Kosmetik (N)";
if ($res->{cosmetic_category_code} eq 'A') { $res->{category_id} .= ", Asia termasuk lokal (A)" }
elsif ($res->{cosmetic_category_code} eq 'B') { $res->{category_id} .= ", Australia (B)" }
elsif ($res->{cosmetic_category_code} eq 'C') { $res->{category_id} .= ", Eropa (C)" }
elsif ($res->{cosmetic_category_code} eq 'D') { $res->{category_id} .= ", Afrika (D)" }
elsif ($res->{cosmetic_category_code} eq 'E') { $res->{category_id} .= ", Amerika (E)" }
else { return [400, "Invalid cosmetic category code ($res->{cosmetic_category_code}), valid code is A-E"] }
$res->{number} =~ /\A([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{5})\z/
or return [400, "Nx number needs to be 11-digit number"];
$res->{cosmetic_country_code} = $1;
$res->{cosmetic_year} = _2to4_dig_year($2);
$res->{cosmetic_group_code} = $3;
$res->{cosmetic_notification_code} = $4;
} elsif ($res->{category_code} =~ /\AB?T(.)\z/) {
$res->{trad_origin} = $1;
$res->{category_id} = $res->{category_code} =~ /\AB/ ? 'Obat traditional berbatasan dengan obat produksi (BT)' : 'Obat traditional (T)';
if ($res->{trad_origin} eq 'R') { $res->{category_id} .= ', dalam negeri (R)' }
elsif ($res->{trad_origin} eq 'I') { $res->{category_id} .= ', impor (I)' }
elsif ($res->{trad_origin} eq 'L') { $res->{category_id} .= ', dalam negeri dengan lisensi (L)' }
else { return [400, "Invalid traditional medicine origin code ($res->{trad_origin}), valid code is R/I/L"] }
$res->{number} =~ /\A([0-9]{2})([0-9]{1})([0-9]{1})([0-9]{4})([0-9]{1})\z/
or return [400, "BTx/Tx number needs to be 9-digit number"];
$res->{trad_year} = _2to4_dig_year($1);
$res->{trad_company_type_code} = $2;
$res->{trad_packaging_code} = $3;
$res->{trad_company_product_serial} = $4;
$res->{trad_packaging_volume_code} = $5;
if ($res->{trad_company_type_code} == 1) { $res->{trad_company_type_id} = 'pabrik farmasi' }
elsif ($res->{trad_company_type_code} == 2) { $res->{trad_company_type_id} = 'pabrik jamu' }
elsif ($res->{trad_company_type_code} == 3) { $res->{trad_company_type_id} = 'perusahaan jamu' }
elsif ($res->{trad_company_type_code} == 4) { $res->{trad_company_type_id} = 'pabrik luar negeri' } # not documented, i guessed
else {
$res->{trad_company_type_id} = '?';
log_warn "Unknown traditional medicine company type code ($res->{trad_company_type_code}), known code is 1/2/3/4";
}
if ($res->{trad_packaging_code} == 1) { $res->{trad_packaging_id} = 'rajangan' }
elsif ($res->{trad_packaging_code} == 2) { $res->{trad_packaging_id} = 'serbuk' }
elsif ($res->{trad_packaging_code} == 3) { $res->{trad_packaging_id} = 'kapsul' }
elsif ($res->{trad_packaging_code} == 4) { $res->{trad_packaging_id} = 'pil, granul, boli, pastiles, jenang, tablet/kaplet' }
elsif ($res->{trad_packaging_code} == 5) { $res->{trad_packaging_id} = 'dodol, majun' }
elsif ($res->{trad_packaging_code} == 6) { $res->{trad_packaging_id} = 'cairan' }
elsif ($res->{trad_packaging_code} == 7) { $res->{trad_packaging_id} = 'salep, krim' }
elsif ($res->{trad_packaging_code} == 8) { $res->{trad_packaging_id} = 'plester, koyo' }
elsif ($res->{trad_packaging_code} == 9) { $res->{trad_packaging_id} = 'bentuk lain (mis: dupa, ratus, mangir, permen)' }
if ($res->{trad_packaging_volume_code} == 1) { $res->{trad_packaging_volume} = '15ml' }
elsif ($res->{trad_packaging_volume_code} == 2) { $res->{trad_packaging_volume} = '30ml' }
elsif ($res->{trad_packaging_volume_code} == 3) { $res->{trad_packaging_volume} = '45ml' }
else { log_warn "Unknown traditional medicine package volume code ($res->{trad_packaging_volume_code}), known code is 1/2/3" }
} elsif ($res->{category_code} =~ /\AFF\z/) {
$res->{category_id} = 'Fitofarma (FF)';
$res->{number} =~ /\A([0-9]{9})\z/
or return [400, "FF number needs to be 9-digit number"];
} elsif ($res->{category_code} =~ /\AHT\z/) {
$res->{category_id} = 'Herbal terstandar (HT)';
$res->{number} =~ /\A([0-9]{9})\z/
or return [400, "HT number needs to be 9-digit number"];
} else {
return [400, "Unknown category code ($res->{category_code}), known category codes include MD/ML/TR/TI/SD/SI/etc"];
}
[200, "OK", $res];
}
1;
# ABSTRACT: Parse food/drug registration code published by the Indonesian National Agency of Drug and Food Control (POM)
__END__
=pod
=encoding UTF-8
=head1 NAME
Business::ID::POM - Parse food/drug registration code published by the Indonesian National Agency of Drug and Food Control (POM)
=head1 VERSION
This document describes version 0.006 of Business::ID::POM (from Perl distribution Business-ID-POM), released on 2023-11-03.
=head1 DESCRIPTION
( run in 1.600 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )