fix(prices): unpublish operations and cosmetology; import prices as drafts

This commit is contained in:
Dana Medical Developer 2026-10-23 13:03:14 +00:00
parent 7b1cfde984
commit c7be67f96c
7 changed files with 749 additions and 4 deletions

View File

@ -0,0 +1,596 @@
-- Approved scope: operations and the unoffered cosmetology section only.
-- No price amounts, catalog entries, appointments or patient data are deleted.
BEGIN;
SET LOCAL lock_timeout='5s';
LOCK TABLE price_items IN SHARE ROW EXCLUSIVE MODE;
CREATE TEMP TABLE price_publication_targets(id bigint PRIMARY KEY, fingerprint text, reason text) ON COMMIT DROP;
INSERT INTO price_publication_targets VALUES
(10433,'c2e7b12628cc858144e407bbd91c3afb','surgical_price_detail'),
(10434,'c8b6d263eaf1cc6fa8a6162a42d31552','surgical_price_detail'),
(10435,'1371ec7024d8da5e0a47b460d91900e3','operation_price'),
(10436,'7b440227f6f89b86db6ede4cda9f0587','operation_price'),
(10437,'26dfad19f905ea667b6570acdb949dd1','operation_price'),
(10438,'33aa70c469152aa7ef80eecc354d9d30','operation_price'),
(10439,'9f1b4f0ad2db943fd8a064d0b277e69b','operation_price'),
(10440,'6e5aacfcc2311df141ebc78421d210be','operation_price'),
(10441,'0fa740bcbb584b420899cf47bae2ec65','operation_price'),
(10442,'2da7ce2f8a3d86079d3b6209b1e90834','operation_price'),
(10443,'1bc116d8508bade2940e382a31f01beb','surgical_intervention_price'),
(10444,'d34950d14d97506d9e5e530a7ff9d4af','surgical_intervention_price'),
(10445,'edbf54ebe7623665ee47bc6517c98d51','surgical_intervention_price'),
(10450,'ae407d3d96928d8fc79fdcfa45291412','operation_price'),
(10451,'4800d31388dad5af6b15e2a81626a6ca','operation_price'),
(10452,'633f47a3a5588895618d48b91f12371a','surgical_intervention_price'),
(10453,'33151408284050b64af93e9b66922b9b','surgical_intervention_price'),
(10454,'02f80619133da44426abf3722fd18b32','surgical_intervention_price'),
(10455,'b1c59680ec57d002767012225e38dba6','operation_price'),
(10456,'fd89aa6fd7f7a3492d074faaf6f3922f','surgical_intervention_price'),
(10457,'6958abca3e0480977ebac5aa208d2e07','surgical_intervention_price'),
(10458,'6599e2dc5d9b295eb9de05e2cf4b3693','surgical_intervention_price'),
(10459,'cdfa3f5ff6de52a054e773d715f84e5e','surgical_intervention_price'),
(10460,'9ff9f94b82da113156c8ba2e5849dc6f','surgical_intervention_price'),
(10461,'d91e28eaf3db98a91d2985b3b5f552c2','surgical_intervention_price'),
(10462,'8ee649f343ee5c8ea251d251472e0bdf','operation_price'),
(10463,'c8f376454796ae3db9e57312e0e818f2','operation_price'),
(10464,'785e4aa911bc1b67d0a09d7919720e36','surgical_intervention_price'),
(10465,'bca99056fd0929fa35e598d1042120c5','surgical_intervention_price'),
(10466,'e167345749412e10b007db8aee246e11','surgical_intervention_price'),
(10467,'2f2fed8d1530e81f73b8f289ef092a3f','surgical_intervention_price'),
(10468,'3b5c340ed8b352af0308f4611f794064','operation_price'),
(10469,'06f2d9b8a2bbc2066cde59d12672f74f','operation_price'),
(10470,'fcec51ae7c93abe6eea7e6411c45b098','operative_correction_price'),
(10473,'9bf2269f814d39bfee65387e45a7525d','surgical_intervention_price'),
(10474,'849e4f06abb2ddbe87568b1164f754a4','operation_price'),
(10475,'b268e903dad66595502bce851e1128dc','surgical_intervention_price'),
(10476,'1b32b8a2b40b59c239a639eb7f8bd9bc','surgical_intervention_price'),
(10477,'d2ea6e7a1d944aba70611cdda4019420','surgical_intervention_price'),
(10478,'bbfdbdb55c8351e7ad1a91f32666b1ec','surgical_intervention_price'),
(10479,'bcc82c8eaeefb2d01662583081d77452','surgical_intervention_price'),
(10480,'cb17152e02ae54ff49e306ed6f11c0dd','surgical_intervention_price'),
(10481,'ca580f9e73702dac6e08427b454df221','surgical_intervention_price'),
(10504,'2c2a484aef4468a928cfccd5474377d7','surgical_price_detail'),
(10505,'d10a0007bd6c774a4c70e6538a24534b','surgical_price_detail'),
(10506,'345d7f32e49113261b419c0932185f81','surgical_price_detail'),
(10507,'fb07367c9aad7ffd95e2e6bd4f251d81','surgical_price_detail'),
(10518,'b7a7df6aa69ad8d6fc9ac253e723a6d7','operative_correction_price'),
(10633,'836ed07a5a593d482570d05969bae94f','operation_price'),
(10634,'c01c413db199addad00a2cef05fe3634','operation_price'),
(10635,'e997e40d53512fb94c7a9dd8900b6042','operation_price'),
(10636,'a81137b1544df44a06449a96799e49ac','operation_price'),
(10637,'666dff37728415c1e98c1a73a993ccb1','operation_price'),
(10638,'ee37bc7a08a550af52158c7551a7d3a1','surgical_intervention_price'),
(10640,'2cab08ae0dcec4d27c9def7809bfc687','surgical_intervention_price'),
(10643,'5b98a1fbe08395b89612d601ea16389b','cosmetic_procedure_price'),
(10644,'3bde4f12b0c4bb68002da7a0e2de2bf9','gynecological_surgery_price'),
(10645,'42f6d7d791bbc7ed670b0b39593b1833','gynecological_surgery_price'),
(10646,'4bb71aac6f0f3c449df685d0b1faac26','gynecological_surgery_price'),
(10647,'60a79a7cb5eb3d02c693647352ee22d2','gynecological_surgery_price'),
(10656,'edbcbae5deca319942029a1bd90256e8','surgical_intervention_price'),
(10657,'ce20a163fb2a927d83c263c33388b8f8','surgical_intervention_price'),
(10658,'7369f6988cf8e04d11af4657b3831d80','operation_price'),
(10659,'40349ccf8f75cf57dae5a80df931457b','operation_price'),
(10660,'9f36223ae4643d738979feb063ab1ad5','operation_price'),
(10661,'de514786adc4ab687c05022a4cbca253','operation_price'),
(10662,'36c891413b6870f471ffadea0289ce22','operation_price'),
(10663,'b36cdf9ce778925f9d5568e39acfb644','gynecological_surgery_price'),
(10664,'857ab729c53af65b907ddb7ba416f3bf','gynecological_surgery_price'),
(10665,'e9d57dacfb82fd2b93637d92f305cd60','gynecological_surgery_price'),
(10667,'3afc2d1977a85668836ca4d37549a107','operation_price'),
(10668,'00585909e16ce60da5b119f2e75ca1f6','operation_price'),
(10669,'1462de0779537d50cb04f566693d194f','operation_price'),
(10670,'db8d4a0aed78adf87cf85db933f9ecd4','operation_price'),
(10671,'51ad6808708d7af2b1acd9b00e1ff6bd','operation_price'),
(10674,'33bd5a88d9a5bb14ce77fa2e76fc841a','cosmetic_procedure_price'),
(10675,'f7a3ab5a14d171070ba9716aa69ee739','cosmetic_procedure_price'),
(10676,'04f2094d2ad4b2cb191e75193861a694','cosmetic_procedure_price'),
(10677,'005a134e9581a367148ef80e17c3770f','cosmetic_procedure_price'),
(10678,'59451b367eec8ad89ba23a48a633a343','cosmetic_procedure_price'),
(10679,'ff7ad589f623f2c74f78ee9c0a1aa1ad','cosmetic_procedure_price'),
(10681,'52467c91c7d3108d785ebabc0a970c39','operation_price'),
(10682,'496f4df6f514d08d853b3d35e4e938d3','operation_price'),
(10683,'48ed7e9bd70ac076a9e71e2f615cc4d6','operation_price'),
(10684,'4b61604e1a5a1277fc94c92d783ddd6a','operation_price'),
(10685,'95072e33be368b6fad82eade473f7266','operation_price'),
(10686,'3f2fafd73588f2055f0e84609f37424b','operation_price'),
(10687,'f1e064fa78b0154d1fc756ae3e6bce67','surgical_intervention_price'),
(10688,'bfa7d0815be38f61d02ebb9ea7719d43','operation_price'),
(10689,'522d25d10f1e95f525a5fe454e693023','operation_price'),
(10690,'88bf63ecae8a4f32a8fe12b5c9e89134','operation_price'),
(10691,'66eef6639b04f0aee82352931d0379b5','operation_price'),
(10692,'9c08ff73d647f745f4a7ea9e0ec92be5','operation_price'),
(10693,'76a3961811a133dbb97e728736ec5e38','gynecological_surgery_price'),
(10694,'c5c4e24f9d069c6acbd5b1bc748f8547','gynecological_surgery_price'),
(10695,'e51b9f1fe4eca546af58561755cd6fc9','gynecological_surgery_price'),
(10696,'9e65e441441b029f1c0918675aede880','gynecological_surgery_price'),
(10697,'0a5e0adb2598c38fcea4d5b2195902e7','gynecological_surgery_price'),
(10698,'1ed2fca0910dd8e0aa15784c455b38e1','gynecological_surgery_price'),
(10699,'be7db087cdf5438a4cd287f67e8a2db8','operation_price'),
(10700,'52639e846a272e73c1ee06dec34e9c94','operation_price'),
(10701,'94761d538d481825c05d74cb2fb7594e','operation_price'),
(10702,'a73168672746f669333d46f62adbc2db','operation_price'),
(10703,'8153ed4a4f71216f5bf0efee9d37cd10','operation_price'),
(10704,'6de173552024b172f9a29aa24a9f4c9c','operation_price'),
(10705,'d0492d4c20d1200feabf2fe18f7f5c68','operation_price'),
(10706,'5e4d035b2075fcb330eceda35e9b6bbd','operation_price'),
(10707,'4e2a5e096d5139574121b80ea8a23556','operation_price'),
(10708,'62275749f0d6cd6f692c833a91d39ed8','operation_price'),
(10709,'9930ef4e9cfc78088c6668c2436fffea','operation_price'),
(10710,'336d27a2f187d2e1e4500f637e5b4932','cosmetic_procedure_price'),
(10711,'06c774891ecb49850d2c2ec085db1b6b','surgical_intervention_price'),
(10712,'87106dd495aa6101255293695c947b5a','surgical_intervention_price'),
(10713,'e66f44fbb836a40077ba014dbfad2164','operation_price'),
(10714,'832222634c14f0b5f63da31b1063ad0e','operation_price'),
(10715,'2382ee70fff468ebaf875fb7e8c34efc','operation_price'),
(10716,'284521e82b8490cbd1c7c9f310cbf411','operation_price'),
(10717,'97cb6f91955ff8033538c29f7290fafd','operation_price'),
(10718,'c0f67f04a844da62b481f15d165e3eb1','operation_price'),
(10720,'203776c03f88eb7b7a8f638b5618f9a5','operation_price'),
(10721,'1f87699d83c9f8d14fa282439dbcde2e','operation_price'),
(10722,'93df9cc3e34f0e73e445d9eb5cd10bf2','operation_price'),
(10723,'cd35f5b670d7bef80d462771a5b8482d','operation_price'),
(10724,'ebd76ef9ad9426ed1dad81659b7f5094','operation_price'),
(10725,'dbf535f85b1873f7a7eb328abca0c2d6','operation_price'),
(10726,'dfa985c2b7739d048c313eb40ae10334','operative_correction_price'),
(10727,'0c799817bd382482561c7737d85672d7','operation_price'),
(10728,'3791cd65af9124831a401596c77bca10','operation_price'),
(10729,'04becabc4832d8d894af6533450c31fd','operation_price'),
(10730,'cfd9f43285ff27ab34dfbd7de33bf8a2','operation_price'),
(10731,'ece5a894389f83a43f379df691b4bb80','operation_price'),
(10732,'94a603149a73154d50915eb631e76559','operation_price'),
(10733,'581d3c51f11698bd9bd572979a7ca07d','operation_price'),
(10734,'8f880dcfd91490bae76cd052cf82bb0d','operation_price'),
(10735,'98cfe4c58b1b0f3a1c22cd20048e1977','operation_price'),
(10736,'96237eea1552df9043c1541e0e9aa35e','operation_price'),
(10737,'ba985f86c6d1c47ee32abe5a73e05199','operation_price'),
(10738,'d9bdebdc7084d4e8a234a40df06b4200','operation_price'),
(10739,'918d8ac0bf14a35408be96036ad2ddc1','operation_price'),
(10740,'b15e240442ba50654306b405e6654b7c','surgical_intervention_price'),
(10741,'607085bee929dd3f379cbb80c7e79f0d','operation_price'),
(10742,'037769aef8981b8e3d0802efd46f1fda','operation_price'),
(10743,'d69fae4b64e16dcfd4eb9aa3ae158367','operation_price'),
(10744,'db2b3d0ece432dfe60f203142dd771e1','surgical_intervention_price'),
(10745,'b84d186c56730bd937b60188a3c3e569','operation_price'),
(10746,'46ba2c258b3cb05eae2c4a896a5d14ce','operation_price'),
(10747,'90db181137b3b0be06a04fed57b84bbc','surgical_intervention_price'),
(10748,'db54322083c3f6c76a588c3185a6eee2','operation_price'),
(10749,'22d86f7758da4c3651ff417b2b43df98','operation_price'),
(10750,'a98a0c0dda890589cad83b4040d9bfbd','operation_price'),
(10751,'c83444090ee1f7d981a04c4892375219','operation_price'),
(10752,'87517cd385192c0c438314d4558a27d9','operation_price'),
(10753,'06530db74ddd84d56f3d2b97cb8d1c98','operation_price'),
(10754,'6606812cfd68fff49cf575567e08c450','operation_price'),
(10755,'1d131133affff655387795f0f69b283d','operation_price'),
(10756,'b7f1866f768bcd8b61d77ee4b8c0f088','operation_price'),
(10757,'2b786890a9d7ad62129504349193cd8a','operation_price'),
(10758,'52f9e78bcfa02ac232d34bd053ffb469','operation_price'),
(10759,'7279ad719af236d43472144831fdf4ea','operation_price'),
(10760,'203012c16f6738542c0aca5534c10491','operation_price'),
(10761,'89d3b6ae30b1b70c039eb62d84510fc3','operation_price'),
(10762,'723776eafbe3dd8c9c84246e50a39134','surgical_intervention_price'),
(10767,'5093cff048e24d5eb30196fd5ca6b7f9','surgical_intervention_price'),
(10768,'a624496b31ccd48c03bacc71c6644576','surgical_intervention_price'),
(10769,'fd02ee55b3c30c10f4af617738e2708a','surgical_intervention_price'),
(10778,'b161b246135f3bdb5e3c09ad63ce535a','gynecological_surgery_price'),
(10779,'b029b7374c4aff87d2803086fdb48e89','gynecological_surgery_price'),
(10780,'ceb458f655cc000c6825a883f96ffe51','gynecological_surgery_price'),
(10783,'0ce7a87bd476357af8877a6702332102','surgical_intervention_price'),
(10784,'b77c4ff95a264238b3e538f1af471af3','surgical_intervention_price'),
(10785,'5ef7def0d92ff98fcb98afcafa75a0d6','surgical_intervention_price'),
(10786,'5b8075ed648e21cdc5d792db7b8ac2fd','surgical_intervention_price'),
(10787,'880cdff088c95648952891a21a9d9312','operation_price'),
(10788,'d70bb641e0a0e9496cccc7168be2f4a4','operation_price'),
(10789,'417f4a63381da5540844473928d354f7','operation_price'),
(10790,'9048b286593878df8f7252520063ed8a','operation_price'),
(10791,'2d7621bc34330109c201635ca0426539','operation_price'),
(10792,'dc5de284abc3db5f3dd09f5c7a0331d1','operation_price'),
(10796,'77fc30e67d3b9cf164a20784812b3929','surgical_intervention_price'),
(10797,'d3f58ba34a16665f574d0f75cdbe4a23','surgical_intervention_price'),
(10798,'3469d392b0ea79fa5f950170e4e999be','surgical_intervention_price'),
(10799,'21b01b48a40777c4f79700d8279a9181','operation_price'),
(10800,'3b42be6d95cb447808c8f0558cc12a74','operation_price'),
(10801,'6d3f4a218500025d2a07b50629756c89','surgical_price_detail'),
(10802,'8db358be4fc2f330d933b87251a0da5a','surgical_price_detail'),
(10803,'4703eeb23a617b12a20f0ad0e8ab11f2','surgical_price_detail'),
(10816,'e9203e9cfa2f47fb46c7593c23aa6a42','cosmetology_not_offered'),
(10817,'02a52fbfde44f46906cef0135dd8ef13','cosmetology_not_offered'),
(10818,'7ab9588e2b78af929c16256bb876f203','cosmetology_not_offered'),
(10819,'b1fd4821b1988a320d59dbbd6cf36db4','cosmetology_not_offered'),
(10820,'35b9e3ce780d33b8bbe1dc7154196b18','cosmetology_not_offered'),
(10821,'096de7306b2956384edf806c4863e5cd','cosmetology_not_offered'),
(10822,'e42a7bb9758b6cd17ed22151835e60c9','cosmetology_not_offered'),
(10823,'c6594f982ed6d7fbd47a53330c9b7128','cosmetology_not_offered'),
(10824,'880fcf1fddfb3ba770bba2961bf28af6','cosmetology_not_offered'),
(10825,'ed5721017d899c5f149c3a3e44ab93fb','cosmetology_not_offered'),
(10826,'4ced7fe2fb50316a8d8a981a608276e7','cosmetology_not_offered'),
(10827,'1cb611c2dd57cd9ff75f9f08c70fb2e0','cosmetology_not_offered'),
(10828,'c0393c594f8677a9a217b4f21364fcb4','cosmetology_not_offered'),
(10829,'a38eecdcef9a8965dba2a445e1fa9d64','cosmetology_not_offered'),
(10830,'f000b0cd246c69298ccfc591f173e0c4','cosmetology_not_offered'),
(10831,'f71d1fa3d6afd3e7c5df06eb6c48f8b6','cosmetology_not_offered'),
(10832,'edc9c679448b2a54f996a679745f9f1d','cosmetology_not_offered'),
(10833,'20e36210803fd99d7a1200a4218cdd51','cosmetology_not_offered'),
(10834,'ea2456cf4055239dd367f1ce39012080','cosmetology_not_offered'),
(10835,'dc5d3fc030220c883cd5990893a27e3a','cosmetology_not_offered'),
(10836,'d1c756de4d8f630aad48f9660104e4fa','cosmetology_not_offered'),
(10837,'153596fa9ec187c47fb315b94ea9b9ad','cosmetology_not_offered'),
(10838,'1e748ad03b157d6057fd900388aa158e','cosmetology_not_offered'),
(10839,'8f32b8a5fa955a8172aa7084bf25212e','cosmetology_not_offered'),
(10840,'e8bdb463139c5922c0a85acce7a1be36','cosmetology_not_offered'),
(10841,'c87bceab6bc494a47ae83204fedefafa','cosmetology_not_offered'),
(10842,'4749893279b958e8dbbc3d83b4a405d0','cosmetology_not_offered'),
(10843,'db63393ddb468461d3acc17594804687','cosmetology_not_offered'),
(10844,'efcf5d13acb33d4841bf0799fa46e87a','cosmetology_not_offered'),
(10845,'24b3a3910a890624a549345d4a8fde57','cosmetology_not_offered'),
(10846,'f2f2226e7c52e64b000dccaeb94665a4','cosmetology_not_offered'),
(10847,'500c2639412a89644651dd65b31966dc','cosmetology_not_offered'),
(10848,'2c62d26b1bb4fd66b5e0f7098d2ad6b5','cosmetology_not_offered'),
(10849,'874538368f4e9cb77f13555c61fc81fd','cosmetology_not_offered'),
(10850,'51c3a44c4d8e988be5083c4c64c33c33','cosmetology_not_offered'),
(10851,'2d453dda45b8237813c1b7c70d53cab0','cosmetology_not_offered'),
(10852,'a7240624b34c493ef1f0de39a730deef','cosmetology_not_offered'),
(10853,'0e3f99090495e54f078292a77926a434','cosmetology_not_offered'),
(10854,'6ce666f4e2f6d3004a6a906f5facf024','cosmetology_not_offered'),
(10855,'6d8075652c310eff50c901af47a95355','cosmetology_not_offered'),
(10856,'66e14a6782c1754fa3fceabf599acb24','cosmetology_not_offered'),
(10857,'5bffefa722c56dac8b06a91015b99355','cosmetology_not_offered'),
(10858,'89be2af6339c0dd3bc714a8477060297','cosmetology_not_offered'),
(10859,'242f703122fce689a3d9fa3851717a8e','cosmetology_not_offered'),
(10860,'0aa0f4522b86cc8cd280b81dc765d88f','cosmetology_not_offered'),
(10861,'5b742d5b9c838d7ad9a1ccbde306f766','cosmetology_not_offered'),
(10862,'3e3653283c86908756662ea350eceb03','cosmetology_not_offered'),
(10863,'1997c635583b98e763109cd4f0c2441a','cosmetology_not_offered'),
(10864,'916b5ac6af0a55be91b34ca8f0c8ff66','cosmetology_not_offered'),
(10865,'c405f12c18562d7f4be2a28eb74e3588','cosmetology_not_offered'),
(10866,'c2e2380dec0bc4525676abcc93ff1ac8','cosmetology_not_offered'),
(10867,'eee8612e777fcbf302f6384c5bdbb5bd','cosmetology_not_offered'),
(10868,'1ebb327a0147df8860edcff093cb520a','cosmetology_not_offered'),
(10869,'df6b3bbb4c199d81747c0268561953af','cosmetology_not_offered'),
(10870,'643c657db49ced08f077233244d27278','cosmetology_not_offered'),
(10871,'4a08d88a7c7b3426a1a914b68dde2e7f','cosmetology_not_offered'),
(10872,'e1106bdbe70e55523fe0cdd19434688c','cosmetology_not_offered'),
(10873,'432c40d5ecbe79d2b8e98e4303eebebf','cosmetology_not_offered'),
(10874,'099682d0a8eedb1b0c7694523107c7fe','cosmetology_not_offered'),
(10875,'09d308f8a15112af61372b81796d2b66','cosmetology_not_offered'),
(10876,'c12146e7ef55994016f89fc2f2f102d6','cosmetology_not_offered'),
(10877,'11a9718e8a4e73342a9e86d7558ec6e0','cosmetology_not_offered'),
(10878,'7e7d010e4527b0f2313a2808cdf0bdc4','cosmetology_not_offered'),
(10879,'8f0ae4d55d209bde7bf3bc3cd7092794','cosmetology_not_offered'),
(10880,'f34fe1ea3eaf179eca5965b564ca45d5','cosmetology_not_offered'),
(10881,'a3825cbb8d90a38e6a15d6579666a87a','cosmetology_not_offered'),
(10882,'359997233b6d83b601f2c1bc2c901ffd','cosmetology_not_offered'),
(10883,'fe1469af75ce2f322189d607eb88ba67','cosmetology_not_offered'),
(10884,'725ecf93f07032dfd38c4ee7f23c7a62','cosmetology_not_offered'),
(10885,'abb9ae3335e099ff36121ba9e7bbbd64','cosmetology_not_offered'),
(10886,'5274d17ba030273a7528da0da99d9f84','cosmetology_not_offered'),
(10887,'05b82cf65926f358a29e771766f9ddcc','cosmetology_not_offered'),
(10888,'c29426cbda49fc29101ab8170c1e887f','cosmetology_not_offered'),
(10889,'2e6e7d0f34f49db078b94477aaec8771','cosmetology_not_offered'),
(11042,'c54e2f8ad78eb30debd0ef486ad99076','surgical_price_detail'),
(11045,'6b66eda75eebdcad21e31e2c52b7cce6','surgical_intervention_price'),
(11046,'dc151d8dd7db70d3d910a44d6c427a25','surgical_intervention_price'),
(11047,'4b4567a00ae26b7224faf7d07c9c3aed','surgical_intervention_price'),
(11056,'70b0a321087f4ecc3a9e5b7ba2dccd92','surgical_intervention_price'),
(11057,'3bb00b63e332403050042eaee83b134d','surgical_intervention_price'),
(11058,'3bafea4d8811265fc6cef4a2ab608f47','surgical_intervention_price'),
(11059,'a6bf1b78ebb51c207d913f7956220c67','surgical_intervention_price'),
(11060,'f58820f161967403029836456eec4016','surgical_intervention_price'),
(11061,'5aaa3df167d6456853fcc34fffc12a53','operation_price'),
(11062,'2b9217c13afee37488a86984f99610da','operation_price'),
(11063,'e70f022419b60eb4684d100b9e73b863','surgical_intervention_price'),
(11064,'6bf045b5277d1360509cb4ef780faf22','surgical_intervention_price'),
(11065,'dfcaad65590a199efb96de785ac788de','surgical_intervention_price'),
(11070,'c07000774203934eeefe03ef831f5846','surgical_intervention_price'),
(11076,'cdc993dd103c07ddc2356f4f00dfe690','surgical_intervention_price'),
(11077,'3050824a65a86b0fadce3e94818d4bbe','surgical_intervention_price'),
(11078,'17c4e9eed83b4b0907127f7739442d7a','operation_price'),
(11079,'56129caa00d11b2fc25ba850a04c323c','surgical_price_detail'),
(11080,'5fb0d501d2b360a68f716453d545af77','surgical_price_detail'),
(11081,'a61d98c639819fbfdcf9a804a3c3b9cf','surgical_price_detail'),
(11082,'d242ede3851caafa7bd32d5bfaf52fe6','surgical_price_detail'),
(11083,'b0235e943177fad8ca6b6040b537af15','surgical_price_detail'),
(11084,'fae83f029c88a7ae202afc1adb48226c','surgical_price_detail'),
(11085,'e9481633f903e07d32ebf878f4fb3064','surgical_price_detail'),
(11086,'57f7992435e0eb96261622ab4e8254eb','surgical_price_detail'),
(11087,'f410750fa06d58815d7c63824544d42f','surgical_price_detail'),
(11088,'cb25da8c07b4a815a5db4a6787b1f7ce','surgical_price_detail'),
(11089,'4bd1576ac4e88b5032e56237e3c02078','surgical_price_detail'),
(11090,'29bbb1a80496730c150b1eb52d4b9ce7','surgical_price_detail'),
(11091,'117b8b35af1c626bba3ec5928e7ebf90','surgical_price_detail'),
(11092,'f6e9dcfbe7b2c67416637f5f513b63e4','surgical_price_detail'),
(11093,'00374cdd9bda6dc1ff2188df07a5b36a','surgical_price_detail'),
(11094,'a188d980bdd602e8c700f0738b0b7548','surgical_price_detail'),
(11095,'912535af80dd8ad2101247ee97f46e65','surgical_price_detail'),
(11096,'795bf4f7caf1c45f59cc3b747dfef584','surgical_price_detail'),
(11097,'5191252c8ed56f6f7b37e53b9fdc0bc4','surgical_price_detail'),
(11098,'d1d9560b8eec2329177525c1c625d563','surgical_price_detail'),
(11099,'e50854ab31dd64c0cd6e5ee3f6575fdd','surgical_price_detail'),
(11100,'9150fcc84ad1dea6dd578a9d853d7927','surgical_price_detail'),
(11101,'6091d8ae558c050db334ce90fd90cf68','surgical_price_detail'),
(11102,'bb534e4fb7f1f849bdb4e2a1239556c3','surgical_price_detail'),
(11103,'188a9d5041d2b976419df273fd8a8adf','surgical_price_detail'),
(11104,'9b940ab4bb1f78605c1b97f0abed4826','surgical_price_detail'),
(11105,'6d8fb4e654d6d1122a24b61c2b7f0d2f','surgical_price_detail'),
(11106,'2c4c4cb006267d913db8dbc3129ab163','surgical_price_detail'),
(11107,'a2f552c14dade7ff204a6ea51df011d8','surgical_price_detail'),
(11108,'605ea9336c810ffd05640427d681e4d8','surgical_price_detail'),
(11109,'7c7f66c0b19c94346359adee2e57cae9','surgical_price_detail'),
(11110,'8a07633f60c7dd857c8168830a28670d','surgical_price_detail'),
(11111,'e5ece75a6af5172465766f36b1066eee','surgical_price_detail'),
(11112,'12d32962c7d9cf0bc90bf7274ac61a7f','surgical_price_detail'),
(11113,'7e1cfc725df2e1d3814780fc3c44df0e','surgical_price_detail'),
(11114,'cd20842b80e7dc9a235905cd8db319be','surgical_price_detail'),
(11115,'a2f89185214a346ac7a185992b5ff443','surgical_price_detail'),
(11116,'dc21994e4eb94323bcd1d806979df638','surgical_price_detail'),
(11117,'11a2c1f87bdb5f32240b4a7b5cb759b5','surgical_price_detail'),
(11118,'a7725590c1edf3f529fd28524ae21fd8','surgical_price_detail'),
(11120,'3f7b6fa4ecab6daa3395ccd70b79ed23','operation_price'),
(11124,'22570fc114e73a5c3a26af0f384fc5a5','operation_price'),
(11125,'c0869c19ca9329ae6ed7ef8c6bddf3be','operative_correction_price'),
(11126,'490d69472d6958b26dd0469ff6a02228','operation_price'),
(11127,'b7c51630bdf82ecb229a48a7b3803534','operative_correction_price'),
(11128,'cade81079fb4dc3ae1233cfb399d4bfe','surgical_intervention_price'),
(11371,'4835325fa9c3db1ab4cf616b4ebebb7b','surgical_price_detail'),
(11372,'70e1d321000308214a3d395cd9991087','surgical_price_detail'),
(11373,'b9a6e984d2acc8e25db5642440c41004','surgical_price_detail'),
(11374,'abed3a1fb693cc3385ae5d08cb10279a','surgical_price_detail'),
(11375,'163073482b7c11d1b1a05fa15cc8e5eb','surgical_price_detail'),
(11376,'aacb181ddfea8dd4a4678db93732b886','surgical_price_detail'),
(11377,'260ad747d302e643cdbb726165ce2b95','surgical_price_detail'),
(11378,'0ddbcd28db9c3e68d0c7c506fbff6d56','surgical_price_detail'),
(11379,'c210dcf60bb444c7cdd3fe7edc0f7f40','surgical_price_detail'),
(11380,'fd26f451f64c945f85da3e0d4fc06684','surgical_price_detail'),
(11381,'15ce842e3cb8812f295994af5e431601','surgical_price_detail'),
(11382,'0b0723ef38f8d265fe51832a4fa1185f','surgical_price_detail'),
(11383,'ed99d882e3ccff9e89a269f3c0873aee','surgical_price_detail'),
(11384,'2a6a2af580393a5e9b26999b7014bf96','surgical_price_detail'),
(11385,'bcacd8b9ed933e295db5da448c2131c2','surgical_price_detail'),
(11386,'8986c17b1d1a4b9b9300c83d17fe0360','surgical_price_detail'),
(11387,'71fde66b891318171ff2f79b9758582e','surgical_price_detail'),
(11388,'4abb5f2c40654797f28b47cd2de5fb85','surgical_price_detail'),
(11389,'aef13333d7c725c1d20cddf9418f89cf','surgical_price_detail'),
(11390,'6efda183b30a072ccfc7a9ce9ec70a27','surgical_price_detail'),
(11391,'f46f8bcd0906a527b5368d4652239e2d','surgical_price_detail'),
(11392,'5ef34592099a55bf6e976a2fcb8bb2b3','surgical_price_detail'),
(11393,'43b5692c9344890e51bf0dabde868e97','surgical_price_detail'),
(11394,'1be8fadd8fc5b3ed1af7565d3c9a8e15','surgical_price_detail'),
(11395,'698e80a8892e997d9528ac854756a5d4','surgical_price_detail'),
(11396,'9c6edede1a27b2fb3ff38dabdf9e6121','surgical_price_detail'),
(11397,'f63e634a79360660fec73a48dbac88c2','surgical_price_detail'),
(11398,'12cb35dc719a1a3d416d7ffd476b2155','surgical_price_detail'),
(11399,'72666b27987bb6f1524fe868a5607bc2','surgical_price_detail'),
(11400,'0d941276edd4d090eebcaf2f3555f11d','surgical_price_detail'),
(11401,'f10f6578213e4de7f9410e89444e57a7','surgical_price_detail'),
(11402,'f14b546b9633b11859f7ae3bcadfdcb8','surgical_price_detail'),
(11403,'e0d23f3afaeb59d824c80aaa5593036e','surgical_price_detail'),
(11404,'2bbd858271ff1f7a58de069c3604f1f0','surgical_price_detail'),
(11405,'ddf2b953405867bdedabb3900e57cc4b','surgical_price_detail'),
(11406,'b594cd8688887b1823c681e2341941ed','surgical_price_detail'),
(11407,'1a02148597fc69c4342ed09be390965b','surgical_price_detail'),
(11408,'96772e1cac533f83d498c2d4d285cf16','surgical_price_detail'),
(11409,'033b24b79f2423430ec39ee98254f30b','surgical_price_detail'),
(11410,'8b846675995a30651044f251d071fb53','surgical_price_detail'),
(11411,'68ba94215cc375c8c10b5dd436777366','surgical_price_detail'),
(11412,'1fb1334af51aaff14d077b2f772b1e8a','surgical_price_detail'),
(11413,'0761ff91fe118dd7fdfa488371b3ac5b','surgical_price_detail'),
(11414,'5bb41478aaacf8c8b2c1b5008c34602e','surgical_price_detail'),
(11415,'79c83e3c423124512a1bd480294ada70','surgical_price_detail'),
(11416,'63d3a34c09acee0fa221a435bde8b926','surgical_price_detail'),
(11417,'7b6a1bbcacf5649b1c49e2f62f797309','surgical_price_detail'),
(11418,'22d645de1aa4b189f6a8512fb8da0bfa','surgical_price_detail'),
(11419,'39d71baf81a5f53af6d46d78b2b480ee','surgical_price_detail'),
(11420,'78e131cd660b178a2b7003595fe973f7','surgical_price_detail'),
(11421,'456c3e6ea1bfa6a996d2fd81983ff8f3','surgical_price_detail'),
(11422,'ac71fea6c7941acd228abbd9a06fcaa0','surgical_price_detail'),
(11423,'6469a16b6d197560c592052662b4b137','surgical_price_detail'),
(11424,'703dc05b18686061e74e8069bbc92b35','surgical_price_detail'),
(11425,'c21816c4d67553def882bcc3b279d94d','surgical_price_detail'),
(11540,'0378e2b5973d5d9543f5222f756fc6b0','operation_price'),
(11542,'1a6dc8d77dfae93497aa082aeb4d13f3','operation_price'),
(11543,'30b4f9699e6eabae15a387e9d9eec6c0','operation_price'),
(11544,'39b89b077f69a44e1bd27c691d2418ba','operation_price'),
(11546,'d1870950b98896d082290977af9feaf2','operation_price'),
(11547,'a00247f43a602cd6ef872ce7cf97f59f','operation_price'),
(11548,'b322b2786589d53844964d5658b87c9c','operation_price'),
(11549,'88e6873dd43ae94e37507fc1d05026ef','surgical_intervention_price'),
(11550,'6b3ae7e02681d06e6cfbaac3fed3d0bf','surgical_intervention_price'),
(11734,'575e625b225038437f925c66891f8354','operation_price'),
(11742,'294336db397b932643e2c28fe0b290e1','surgical_intervention_price'),
(11743,'5a40e6af7d2f39719086c93178973bea','surgical_intervention_price'),
(11756,'83c386c22f9712200aea617f620a8722','surgical_intervention_price'),
(11783,'8a77cc1efa74b79098cf3806d84159fe','surgical_intervention_price'),
(11786,'d87ee3ebe767d49a85d234482961db9b','surgical_intervention_price'),
(11958,'ca68d448d87d3350c0caa53e94e849fa','operative_correction_price'),
(11973,'bc9f99ce1f49555034f7393b0f1e45bb','operation_price'),
(11982,'afb816285e8f91d7570e18531e9f093b','operation_price'),
(11998,'5c95a46d4d34b625f8da9bebda7cd2a0','operation_price'),
(11999,'4384c815e5fa65e91b12cd79c8e7e476','operation_price'),
(12000,'7f38a2461e8d480f397f7fc5c20c6609','operation_price'),
(12003,'9505cbb041d36b5059e2f0d2d9033979','surgical_intervention_price'),
(12004,'140f64b3cb6b4439bf2fad2fe1deba47','surgical_intervention_price'),
(12046,'e3028dc66f7d7d0f86c5e45c47eed593','surgical_intervention_price'),
(12048,'5c0c484147ccbc505573680a689279dc','surgical_intervention_price'),
(12056,'d98059430332ff237c5e63d611ab98b6','cosmetology_not_offered'),
(12057,'38ec5698cd42e42225ae193cac982e49','cosmetology_not_offered'),
(12058,'8d3215a1fc6b3c80ea397478a795f75d','cosmetology_not_offered'),
(12059,'29f3f86dd88c19eb889696a5b99f3d1a','cosmetology_not_offered'),
(12060,'7a30e81b39e37dad29190873ba9ea411','cosmetology_not_offered'),
(12061,'a9ace30af64ffdaf7d748708edfc5f7d','cosmetology_not_offered'),
(12062,'39153e248f08090c3a3055eb86e18728','cosmetology_not_offered'),
(12063,'9a863edfaa397f2c98452899ea4e3c12','cosmetology_not_offered'),
(12064,'9a034bd8c0d211d6f1106756d79403e3','cosmetology_not_offered'),
(12065,'0a6820c0ef0d4da958d1894177502ada','cosmetology_not_offered'),
(12066,'e069a9a399ec0d284b6f448455ccb6de','cosmetology_not_offered'),
(12067,'a48df977faa2d02725281746651a8647','cosmetology_not_offered'),
(12068,'550ec815d50532a431e3f8cc91a9373e','cosmetology_not_offered'),
(12069,'e26e4b130f0f0119d68c693e20e0f12e','cosmetology_not_offered'),
(12070,'9f1ae2572a447dec18ca4b7975bb76c6','cosmetology_not_offered'),
(12071,'33b803c8a6a937f186f6925016703118','cosmetology_not_offered'),
(12072,'c8dbf522b1e762365d98a05cc518369b','cosmetology_not_offered'),
(12073,'1005826b078663c1d6a656158d0bd293','cosmetology_not_offered'),
(12074,'5833f2592b6e07bcdb9a3cc44617c9d1','cosmetology_not_offered'),
(12075,'fbc4b568ccca05478631fd12ee2f478c','cosmetology_not_offered'),
(12076,'d7325ad90ad8b82f7b1b52fea1141fb3','cosmetology_not_offered'),
(12077,'d1e9e7e92577d32012f31e0dcceaba85','cosmetology_not_offered'),
(12078,'f670717590d89b333f8324e6ec37b31b','cosmetology_not_offered'),
(12079,'677a1aafe1fa5c0ff773e74f8e68c512','cosmetology_not_offered'),
(12080,'5a3c5d05d793e80fb62df3629eae6890','cosmetology_not_offered'),
(12081,'8adf05d715ebccc133a4722138b68447','cosmetology_not_offered'),
(12082,'3f684b5b205c9dbc2c0b69d2dbae0425','cosmetology_not_offered'),
(12083,'b6fcbdec6bda1a0a7a2f6d43dc4661d1','cosmetology_not_offered'),
(12084,'88fee28949c00633e963f80ab57e4d80','cosmetology_not_offered'),
(12085,'c8ac45aef2b1ea75d7fb2712f7922acd','cosmetology_not_offered'),
(12086,'1578165652d4705d73ba5af5f81db35c','cosmetology_not_offered'),
(12087,'c42b0daf93cda799290431e5fb300aee','cosmetology_not_offered'),
(12088,'ca30d5cb505ad8e802e044c7f7f7a4e5','cosmetology_not_offered'),
(12089,'97e4155ef25ad9eda37a6231d4b1ca10','cosmetology_not_offered'),
(12090,'b70cb412b4109b1a9522369986152e53','cosmetology_not_offered'),
(12091,'6cde0eca5fbae6a3e8639d38e585a2ec','cosmetology_not_offered'),
(12092,'50ca0ca3bbf56b000844e117a4666668','cosmetology_not_offered'),
(12093,'36fea48f67ee40f57ee09ccde3a59f25','cosmetology_not_offered'),
(12094,'f97232126baf222255eb963ca1c5eeff','cosmetology_not_offered'),
(12095,'cb1cc59aaf7ede666c7ffd7cb1b600ab','cosmetology_not_offered'),
(12096,'ebdb880fd860b2df726fc3b4ffa500af','cosmetology_not_offered'),
(12097,'e66bbab385a9a7a7d5ca864e127ac35c','cosmetology_not_offered'),
(12098,'a98db63eb94119f889c319cea6c67ea9','cosmetology_not_offered'),
(12099,'d79dbd1850ed37244924d7f76fe4cd16','cosmetology_not_offered'),
(12100,'49aba0c54f7a5b41484d9fac4b38420c','cosmetology_not_offered'),
(12101,'7e89d2e9a79dd100dc5405be95d4bc63','cosmetology_not_offered'),
(12102,'5478dd5b6fc441af4ab4c7dd2fd3dbe2','cosmetology_not_offered'),
(12103,'a763c317b76c96cde72bda118462c86a','cosmetology_not_offered'),
(12104,'4fe0c52d90f929637863393062c36813','cosmetology_not_offered'),
(12105,'ea9b407b40836224d3b486602bd6a186','cosmetology_not_offered'),
(12106,'b7c605e616df70bcc4c5c23adb89dec3','cosmetology_not_offered'),
(12107,'8e915038e5372f17158ee2e9a95f26df','cosmetology_not_offered'),
(12108,'b247e363fc233fe1eaec4ec4931598d1','cosmetology_not_offered'),
(12109,'92a3a87a28a1205c59a76734ca4246a6','cosmetology_not_offered'),
(12110,'0594b56c5946e743ddbc4192a71a51b6','cosmetology_not_offered'),
(12111,'699560dacf39428a9b6cdbbbb19ba1c2','cosmetology_not_offered'),
(12112,'119fdc728b72b7d7f740292d53c4fce9','cosmetology_not_offered'),
(12113,'add125e7021a73fec6964e045246e6e2','cosmetology_not_offered'),
(12114,'6b4678a90096ceecdb5a86186428d98c','cosmetology_not_offered'),
(12115,'6fe3fecefc244391b6c7b3d9b3eee5a7','cosmetology_not_offered'),
(12116,'c2c9832567725ebda0004b894972c1eb','cosmetology_not_offered'),
(12117,'58f990a2e230859af42ac1f200fc3b49','cosmetology_not_offered'),
(12118,'6c8f1a02171e9a9d25d485cdb12e58e0','cosmetology_not_offered'),
(12119,'17456c63d7326ab1d771aad17c7c7ec6','cosmetology_not_offered'),
(12120,'78ac831fd6ab7682bbbb9232e69546b0','cosmetology_not_offered'),
(12121,'ca8a896bc0488318adbfdc5809a786a2','cosmetology_not_offered'),
(12122,'3d30264b2ef620c9bf84e124a0616e1a','cosmetology_not_offered'),
(12123,'ff1adb244f917563fed665fd60428b10','cosmetology_not_offered'),
(12124,'4a52e207367f602a220934d440ee431e','cosmetology_not_offered'),
(12125,'0ecb48d8caee8d216ace4efa9da4ca99','cosmetology_not_offered'),
(12162,'a4c3da9144f69caff0b463a51afa7167','operation_price'),
(12163,'0ae52e4322bd29835f4dae2ff5238a88','operation_price'),
(12193,'542c767c1d26d6912f9e61bbc15d39ed','operative_correction_price'),
(12194,'cccc4e8e479fcef138394a91230260af','operation_price'),
(12195,'314035d8ffd5aa8c2361d0386eff7088','operative_correction_price'),
(12196,'71d4bdfc0fc98c7a0bc2a8df384af920','operation_price'),
(12197,'57fe27f42fa99a0d3358f196eb3535a5','operation_price'),
(12198,'90490cf14c6ac0504c47b6a6dd749402','operation_price'),
(12199,'2ddc3a390b48505fcf8334def26699bf','operation_price'),
(12200,'dafa11f3d67bf3c0750f760f4eb11d00','operation_price'),
(12201,'ecd7e9c434f8326f45ef1b44c681d5d7','operation_price'),
(12202,'2ff12a562aa677a4ff9de597330c421e','operation_price'),
(12203,'47941eb20f0a5fe0406346a773664feb','operation_price'),
(12204,'1ba44455cb675793a85c908d9bf306f1','operation_price'),
(12207,'9d522efbdf389535d76ea5a4179f86df','operation_price'),
(12208,'c7de26b2fe741a7023975db500997eb1','operation_price'),
(12209,'e3e6cb8bc986bdcf71bb03ba728265f8','operation_price'),
(12210,'cb3ca69ac0f09cc9b49f5614e5f67d43','operation_price'),
(12211,'fb1f9989ae12feba70cef8762fc3313c','operation_price'),
(12214,'e2a5b26da171d66b0ee06b118a13a66b','operation_price'),
(12217,'f0ee5f4bfe96b7c45ab5e9614c2e1bfd','operation_price'),
(12228,'c5069f96a46edda7f13e21c0869ff8c2','operation_price'),
(12238,'87d9f5d15614a38aa09d12c78f247a00','operation_price'),
(12239,'45dd27984c36eff5feef811aa5aab72c','operation_price'),
(12241,'69c35f029b1dcf79a9afb6e5d736cead','operation_price'),
(12307,'8297cd9465f8a36f05260da47252b632','surgical_price_detail'),
(12308,'f7ffdf477d105555278de2dd0872b489','surgical_price_detail'),
(12316,'72418cde90192156f032920ea285cbb1','surgical_price_detail'),
(12317,'18a87beb7fa43564973e7394eb5190c5','surgical_price_detail'),
(12318,'8f617b629d1d376afed055c1809b68bc','surgical_price_detail'),
(12319,'cfd0a1104f1cd791256f9eb057279848','surgical_price_detail'),
(12329,'f79c0a1cb1d89dc88f8c88e58f5f634b','cosmetology_not_offered'),
(12451,'fb820f34e7cc179a8ac4db749346b02c','operative_correction_price'),
(12452,'a3b9e7059b40c1a9cee9d6a396b0b3de','operative_correction_price'),
(12453,'efe7b2ae87d26a889665d1c98637d48c','operative_correction_price'),
(12454,'19fdabbc1f10dc06adab322f58165fa5','operative_correction_price'),
(12455,'bfe4e4f04059282741fddc504b8b5900','operative_correction_price'),
(12515,'15515bcf1133c304424f3aa403a84d66','operation_price'),
(12516,'af4f2f96bc0b82b8ac58a7ebfac4a63b','operation_price'),
(12518,'9abc5653a6050e7a7f45d86c6eb0bbbf','operation_price'),
(12541,'ca64c5d03a1723790c47efddf13303d4','surgical_price_detail'),
(12542,'e5870768b77cb960ddbd1aac07337da9','surgical_price_detail'),
(12543,'9f2dab559415b5ba845227a85984106e','surgical_price_detail'),
(12544,'fadae736e6a7061c4737070af2518e1c','surgical_price_detail'),
(12545,'852cd92a5bc6682f4638bb936f5e6b56','surgical_price_detail'),
(12546,'cf6773a17090308651623ace4c8ffddc','surgical_price_detail'),
(12547,'1b0c6b3b932693dd976553985d4c11e2','surgical_price_detail'),
(12548,'34504b6f1bd86f1f292515c0f2a289c3','surgical_price_detail'),
(12549,'6951e1005cb7ec72ebf882ebaf3eb287','surgical_price_detail'),
(12550,'689ed0c3b18f72b0387a706dbaae480b','surgical_price_detail'),
(12551,'bf7d67c4e777492125163ba2aaf35a27','surgical_price_detail'),
(12552,'d6acf6ba0b21fff9993f144e8748d794','surgical_price_detail'),
(12553,'5c6cc47ccfd1e7d19ddc2e05e9e1b1c5','surgical_price_detail'),
(12554,'081c18c9fd4fce37fc708e969aeae7b1','surgical_price_detail'),
(12555,'7d41c0198f605c6be65bae417c384ba5','surgical_price_detail'),
(12556,'1ac579a1bd3c000739a6518c6a638984','surgical_price_detail'),
(12557,'d5d540caeaab5548daf57ee5d22ef822','surgical_price_detail'),
(12558,'a25496fe1583455e975dd17e92ebcc71','surgical_price_detail'),
(12559,'47c6b2d8e7574cc1ddd6a1b4ebeb451d','surgical_price_detail'),
(12560,'69c0abab89b2bd680ebd0390cfe5ee4b','surgical_price_detail'),
(12561,'45eff69bdec5e58159d08c6cee3fbfe5','surgical_price_detail'),
(12562,'cf90cee68b9460bdbf38906d8d772cb1','surgical_price_detail'),
(12563,'9106a74c00b398c8454ac712c32b30b3','surgical_price_detail'),
(12564,'4c0907c06c19fb51e7a2f0cfc6baa1ba','surgical_price_detail'),
(12565,'246529f025b520391f8be3b972c46fcc','surgical_price_detail'),
(12566,'be8442984c9b895fb07bab4c0dd503eb','surgical_price_detail'),
(12567,'36879d8f65bd1250eff26f01fb9b8343','surgical_price_detail'),
(12568,'9325bc3676af861bb47393f885756c20','surgical_price_detail'),
(12569,'9f330591da3a686aeaf90ba996f739d6','surgical_price_detail'),
(12570,'57e3c99799b65795a97165f0690daaf8','surgical_price_detail'),
(12571,'1db645094661e852838a405e297e479a','surgical_price_detail'),
(12572,'11041c5bf6f48751f364411371ce159d','surgical_price_detail'),
(12573,'d105445b1ca2ceea9c9dc489f88ae1a0','surgical_price_detail'),
(12574,'fd9bf203ac47c50f26fba1cb0280d704','surgical_price_detail'),
(12575,'9e42aa66ea210ce22c1c999dd754f077','surgical_price_detail'),
(12576,'da7dc22c14767e439544c037f5d4ccb6','surgical_price_detail'),
(12577,'a95f40ca9fa48fb7d8fb4d88546c7462','surgical_price_detail'),
(12578,'65cc087d3945e15edf48f78148cc49a4','surgical_price_detail'),
(12579,'3f09df987fa4767e0ab20e18b916ff10','surgical_price_detail'),
(12580,'a3eaf78280199f4808f1da8cf9c07641','surgical_price_detail'),
(12581,'827d9ebd9ca804cbdf9b1a7261da5b95','surgical_price_detail'),
(12582,'8b95d38f33fd9fba35ec7d31700bb3ae','surgical_price_detail'),
(12583,'a604307957461c5d3a9639b88ea229d8','surgical_price_detail'),
(12591,'066a9bb51f9b2160632d92b8dd03afb8','operation_price'),
(12592,'da03d8ef7cfca6d1b77a4c79cf0f9bbc','operation_price'),
(12593,'3b8507abfe96f67267aca1d8c3f4021a','operation_price'),
(12594,'582a42ebcb731353b1cf9182fabffe49','operation_price'),
(12595,'a7cd2aa40a3f1b71cf02ddbc23375ff2','operation_price'),
(12598,'642ef5b673116d573f7116d1fb3e4d2d','surgical_intervention_price'),
(12600,'02ec57b25f6e1fa9fec9118f2803b5c6','operative_correction_price'),
(12601,'1030eab27b2598e125288f0553378ce2','operative_correction_price'),
(12602,'b1c181de0f40ae9e8e990fc60afab728','operation_price'),
(12610,'1788a5b70385ecbb25158b4c140bc67d','surgical_intervention_price'),
(12626,'e08134b4d408c79cead0e06d1546cbca','surgical_intervention_price'),
(12627,'86a12e5745a919cb7d3a8ba51a94f0b8','surgical_intervention_price'),
(12727,'fe3f4e9bf0ba07915981f5d4007eeff9','surgical_intervention_price'),
(12729,'f426443ffa8c86647eb48ae5f83feca2','surgical_intervention_price'),
(12840,'5b293748b6ef04c64c394166805c2695','operative_correction_price'),
(12841,'8be46f399179f835662529083f43f3cc','operation_price'),
(12844,'40047e838889951a5b84405a3315c88f','operation_price'),
(12847,'327a7c71308e620511455bb627da38b3','operation_price');
DO $$
BEGIN
IF (SELECT count(*) FROM price_publication_targets t JOIN price_items p USING(id) JOIN price_sections s ON s.id=p.section_id
WHERE p.published AND md5(p.name || '|' || p.price::text || '|' || s.slug)=t.fingerprint) <> 575 THEN
RAISE EXCEPTION 'Price data changed since review; aborting without changes';
END IF;
IF NOT EXISTS (SELECT 1 FROM price_sections WHERE slug='kosmetologiya-price' AND published) THEN
RAISE EXCEPTION 'Cosmetology section state changed; inspect before applying';
END IF;
END $$;
UPDATE price_items p SET published=false,updated_at=now() FROM price_publication_targets t WHERE p.id=t.id;
UPDATE price_sections SET published=false WHERE slug='kosmetologiya-price';
SELECT t.reason,count(*) AS hidden_rows FROM price_publication_targets t GROUP BY t.reason ORDER BY t.reason;
COMMIT;

View File

@ -0,0 +1,53 @@
# Public price corrections, 23 October 2026
Clinic instruction: hide operations and the unoffered cosmetology direction.
Keep the rest of the current price list and consultation prices. Do not publish
an invented minimum for plastic surgery; wait for the clinic's approved amount.
## Provenance
The original workbooks D:/ЦОМ.xlsx, D:/Остео.xlsx and D:/Дана Дети.xls were
read without modification. All 2439 database price names/amounts matched source
rows (ignoring only the importer-added source labels). The legacy importers
`migrations/import/build_price_map.py` and `rebuild_price_from_1c_only.py`
generated INSERT statements with `published=true`. An internal nomenclature
item was incorrectly treated as approved public website content. Heading-based
grouping also placed surgical entries under unrelated categories such as US.
## Applied scope
`hide-nonpublic-prices-20261023.sql` is a one-time visibility-only correction.
It identifies 575 reviewed existing rows by ID plus a fingerprint of the exact
name, amount and section. It aborts on drift. No prices are changed and no rows
are deleted. The cosmetology section is unpublished. The raw catalog remains
available to administrators. Other sections, doctor profiles, appointments and
clinical records are unchanged.
The selection rules in `price_policy.py` are an audit helper, not a medical
classifier or an ongoing automatic publication rule. New or ambiguous entries
require human review; do not blindly apply these expressions to future imports.
The two legacy generators now produce draft prices and draft new sections.
They are not executed by this correction. The full-rebuild generator still
contains a historical DELETE and must never be run against production without
a separately approved replacement/backup plan.
## Verification and rollback
Run the standard-library tests from deploy/:
```sh
python3 -m unittest -v test_price_policy test_price_import_defaults
```
After the SQL change, compare every price with the pre-change snapshot. Only
the reviewed IDs may change their publication flags/updated timestamps. Public
`/api/v1/prices`, service pages and search must exclude hidden IDs; consultation
prices and unrelated price amounts must remain intact. SSR builds its cache
fingerprint from current public data, so no application restart is required.
The private task directory `/home/mikail/dana-price-publication-20261023/`
contains the before/after price snapshots and `rollback-price-visibility.sql`.
Use that rollback only after reviewing any newer manual publication edits. It
restores the previous publication flags and does not restore or overwrite
patients, appointments or price amounts. Do not restore the entire database.

47
deploy/price_policy.py Normal file
View File

@ -0,0 +1,47 @@
"""Publication-only policy; never changes prices, services or medical records."""
import re
CONSULT = re.compile(r"^(?:(?:первичная|повторная|первичный|повторный|послеоперационная)\s+)?(консультац|консултац|при[её]м\s+(врача|хирурга|пластического))", re.I)
OPERATION = re.compile(r"операци|оперативн|эктоми|ектоми|резекц|пластик|лапарос|лапаротом|лапараскоп|лапаратом|иссечени|кольпораф|перинеораф|конизаци|циркумци|лигирован|обрезани|гернио|экс[тц]ирпац|шунтир|хирургия|гастрошунт|аденотом|тонзиллотом|полипотом|френулотом|нефростом|остеосинтез|остеотом|варикоцеле|ампутац|гистероскоп|пекси|ректоцеле|вылущивани|дефлорац|эксцизи|перевязка\s+маточных\s+труб", re.I)
ANCILLARY = re.compile(r"послеоперац|предоперац|дооперац|после\s+операц|реабилитац|курсы\s+по|анестези|капельниц|восстановлени", re.I)
SURGICAL_REMOVAL = re.compile(r"^(удалени|вскрыти|рассечени|эксцизи|ушивани|разрез|энуклеац)", re.I)
SURGICAL_SECTIONS = {"hirurgiya-price", "urologiya-price", "proktologiya-price", "gyne-price", "travmatologiya-price", "lor"}
EXPLICIT_OPERATION_IDS = {10470, 10518, 10726, 11125, 11127, 11958, 12193, 12195, 12451, 12452, 12453, 12454, 12455, 12600, 12601, 12840}
COSMETIC = re.compile(r"биоревитализац|омоложени|моделирование\s+формы\s+половых\s+губ|увеличение\s+точки\s+g|введение\s+гиалуроновой\s+кислоты", re.I)
def reason(item):
name = item["name"].strip()
section = item["section"]
if section == "kosmetologiya-price":
return "cosmetology_not_offered"
if CONSULT.search(name):
return None
# The user explicitly requested consultation-only public surgical pricing.
if section in {"plasticheskaya_hirurgiya", "hirurgiya-price"}:
return "surgical_price_detail"
if item["id"] in EXPLICIT_OPERATION_IDS:
return "operative_correction_price"
if COSMETIC.search(name):
return "cosmetic_procedure_price"
if ANCILLARY.search(name) and not re.match(r"^(операци|оперативн|иссечени|удалени)", name, re.I):
return None
if OPERATION.search(name):
return "operation_price"
if SURGICAL_REMOVAL.search(name):
return "surgical_intervention_price"
if section == "gyne-price" and re.search(r"выскабливани|вакуумная\s+аспирац|гистерорезек|рассечени\s+синехи", name, re.I):
return "gynecological_surgery_price"
return None
if __name__ == "__main__":
import json
from collections import Counter
from pathlib import Path
root = Path(__file__).resolve().parent
prices = json.loads((root / "prices-before.json").read_text(encoding="utf-8-sig"))
targets = [{**item, "reason": reason(item)} for item in prices if item["published"] and reason(item)]
(root / "targets-review.json").write_text(json.dumps(targets, ensure_ascii=False, indent=2), encoding="utf-8")
print("TARGETS", len(targets), dict(Counter(item["section"] for item in targets)))
for item in targets:
if item["section"] not in {"kosmetologiya-price", "hirurgiya-price", "plasticheskaya_hirurgiya"}:
print(item["id"], item["section"], item["name"])

View File

@ -0,0 +1,19 @@
"""Inspect legacy generators without importing them (they have file-writing side effects)."""
import ast
from pathlib import Path
import unittest
class ImportDefaultsTest(unittest.TestCase):
def test_imported_items_are_draft(self):
root = Path(__file__).resolve().parents[1] / 'migrations' / 'import'
for name in ('build_price_map.py', 'rebuild_price_from_1c_only.py'):
with self.subTest(script=name):
tree = ast.parse((root / name).read_text(encoding='utf-8'))
inserts = [node.value for node in ast.walk(tree) if isinstance(node, ast.Constant) and isinstance(node.value,str) and 'INSERT INTO price_items' in node.value]
self.assertTrue(inserts)
for sql in inserts:
self.assertIn('SELECT id,%s,%s,%s,false',sql)
self.assertNotIn('%s,true FROM price_sections',sql)
if __name__ == '__main__':
unittest.main()

View File

@ -0,0 +1,26 @@
import unittest
from price_policy import reason
def item(name, section="gyne-price", item_id=1):
return {"id": item_id, "name": name, "section": section}
class PricePolicyTest(unittest.TestCase):
def test_consultations_are_preserved(self):
for name in ("Консультация хирурга", "Консультация врача хирурга (Тест)", "Прием хирурга/ортопеда (Тест)"):
self.assertIsNone(reason(item(name, "hirurgiya-price")))
def test_gynaecological_and_misfiled_operations_are_hidden(self):
for name in ("Лапароскопическая миомэктомия", "Надвлагалищная ампутация матки (лапараскопия)", "Оперативная коррекция послеоперационного рубца", "Радиоволновая эксцизия ш/м", "Кольпорафия", "Вылущивание кисты шейки матки", "Вагинопластика 3 кат. сложности"):
self.assertIsNotNone(reason(item(name)))
self.assertIsNotNone(reason(item("Операция на опухоль спинного мозга", "uzi-price")))
def test_nonoperative_prices_are_unchanged(self):
for name, section in (("Кольпоскопия", "gyne-price"), ("Кардиотокография (КТГ) плода", "gyne-price"), ("УЗИ органов брюшной полости", "uzi-price"), ("Кариес (детям)", "stomatologiya"), ("Керамические коронки", "stomatologiya"), ("Капельница Восстановление после операций", "protsedurny-kabinet"), ("Реабилитация после операции", "lech_bol")):
self.assertIsNone(reason(item(name, section)))
def test_whole_unoffered_cosmetology_section_is_hidden(self):
self.assertEqual(reason(item("Чистка лица", "kosmetologiya-price")), "cosmetology_not_offered")
self.assertEqual(reason(item("Ошибочно включённая консультация", "kosmetologiya-price")), "cosmetology_not_offered")
if __name__ == "__main__":
unittest.main()

View File

@ -176,12 +176,14 @@ o = io.open('seed_price_1c.sql', 'w', encoding='utf-8')
o.write('BEGIN;\n') o.write('BEGIN;\n')
o.write("DELETE FROM price_items WHERE section_id=(SELECT id FROM price_sections WHERE slug='edinyy-svereno');\n") o.write("DELETE FROM price_items WHERE section_id=(SELECT id FROM price_sections WHERE slug='edinyy-svereno');\n")
o.write("DELETE FROM price_sections WHERE slug='edinyy-svereno';\n") o.write("DELETE FROM price_sections WHERE slug='edinyy-svereno';\n")
# Internal 1C nomenclature is not an approved public price list.
# New sections and prices stay draft until explicitly approved by the clinic.
for slug, name in NEW_SECTIONS: for slug, name in NEW_SECTIONS:
o.write("INSERT INTO price_sections (slug,name,sort,published) VALUES (%s,%s,100,true) " o.write("INSERT INTO price_sections (slug,name,sort,published) VALUES (%s,%s,100,false) "
"ON CONFLICT (slug) DO NOTHING;\n" % (esc(slug), esc(name))) "ON CONFLICT (slug) DO NOTHING;\n" % (esc(slug), esc(name)))
for i, (slug, name, price) in enumerate(mapped_rows): for i, (slug, name, price) in enumerate(mapped_rows):
o.write("INSERT INTO price_items (section_id,name,price,sort,published) " o.write("INSERT INTO price_items (section_id,name,price,sort,published) "
"SELECT id,%s,%s,%s,true FROM price_sections WHERE slug=%s;\n" % ( "SELECT id,%s,%s,%s,false FROM price_sections WHERE slug=%s;\n" % (
esc(name), price, i + 1, esc(slug))) esc(name), price, i + 1, esc(slug)))
o.write('COMMIT;\n') o.write('COMMIT;\n')
o.close() o.close()

View File

@ -56,10 +56,12 @@ for (slug, name), pricemap in groups.items():
o = io.open('seed_price_final.sql', 'w', encoding='utf-8') o = io.open('seed_price_final.sql', 'w', encoding='utf-8')
o.write('BEGIN;\n') o.write('BEGIN;\n')
o.write('DELETE FROM price_items;\n') # прайс теперь целиком из 3 файлов 1С o.write('DELETE FROM price_items;\n') # Legacy full replacement; never run without a separate approved plan.
# Importing an internal price is not permission to publish it on the website.
# Approval/publication must be separate from this offline SQL generator.
for i, (slug, name, price) in enumerate(rows_out): for i, (slug, name, price) in enumerate(rows_out):
o.write("INSERT INTO price_items (section_id,name,price,sort,published) " o.write("INSERT INTO price_items (section_id,name,price,sort,published) "
"SELECT id,%s,%s,%s,true FROM price_sections WHERE slug=%s;\n" % ( "SELECT id,%s,%s,%s,false FROM price_sections WHERE slug=%s;\n" % (
esc(name), price, i + 1, esc(slug))) esc(name), price, i + 1, esc(slug)))
o.write('COMMIT;\n') o.write('COMMIT;\n')
o.close() o.close()