Skip to content

Instantly share code, notes, and snippets.

Avatar

atronah

View GitHub Profile
@atronah
atronah / eternity.py
Created Jan 10, 2020
Eternity log parser
View eternity.py
import csv
import datetime
import time
from itertools import groupby, chain
from functools import reduce
import click
def make_tree(data, group_indexes):
@atronah
atronah / exb_syncmanager_template.sql
Created Nov 12, 2019
РЕГИЗ.Справочники: Шаблон добавления правила загрузки справочника в SynManager
View exb_syncmanager_template.sql
/*
Скрипт добавления правила загрузки справочника из РЕГИЗ.
Загрузка подразумевается через `SyncManager.exe` в режиме `Справочнике FHIR (API)`
из Сервиса Терминологии РЕГИЗ:
- Web-интерфейс тестового стенда: `http://r78-rc.zdrav.netrika.ru/nsiui`
- RESTful Сервис тестового стенда: `http://r78-rc.zdrav.netrika.ru/nsi/fhir/term`
В скрипте необходимо заменить следующие `placeholder`-ы:
- <oid> - OID справочника
- <refbook_title> - Название справочника
@atronah
atronah / prc_refbook_loader_template.sql
Created Nov 12, 2019
РЕГИЗ.Справочники: Шаблон создания процедуры-обработчика загруженной версии справочника
View prc_refbook_loader_template.sql
/*
Скрипт создания процедуры-обработчика, который будет обновлять DICINFO-копию справочника на основе загруженной из РЕГИЗ новой версии.
Загрузка подразумевается через `SyncManager.exe` в режиме `Справочнике FHIR (API)`
из Сервиса Терминологии РЕГИЗ:
- Web-интерфейс тестового стенда: `http://r78-rc.zdrav.netrika.ru/nsiui`
- RESTful Сервис тестового стенда: `http://r78-rc.zdrav.netrika.ru/nsi/fhir/term`
В скрипте необходимо заменить следующие `placeholder`-ы:
- <refbook_name> - Название справочника латиницей с учетом ограничения именования объектов в СУБД FB
*/
@atronah
atronah / tbl_for_load_template.sql
Created Nov 12, 2019
РЕГИЗ.Справочники: Шаблон создания таблицы загрузки справочнкика
View tbl_for_load_template.sql
/*
Скрипт создания таблицы, в которую будут грузиться все версии справочника.
Загрузка подразумевается через `SyncManager.exe` в режиме `Справочнике FHIR (API)`
из Сервиса Терминологии РЕГИЗ:
- Web-интерфейс тестового стенда: `http://r78-rc.zdrav.netrika.ru/nsiui`
- RESTful Сервис тестового стенда: `http://r78-rc.zdrav.netrika.ru/nsi/fhir/term`
В скрипте необходимо заменить следующие `placeholder`-ы:
- <oid> - OID справочника
- <refbook_title> - Название справочника
@atronah
atronah / exb_create_refbook_template.sql
Last active Nov 12, 2019
РЕГИЗ.Справочники: Шаблон создания DICINFO-копии справочника
View exb_create_refbook_template.sql
/*
Скрипт создания DICINFO-копии, в которой будут значения из последней загруженной и обработанной версии справочника РЕГИЗ.
Данный справочник предполагается использовать в МИС (как справочник параметров ИБ, как классификатор НСИ, как справочник для выболра значений в атрибуте сущности и т.д.).
**Внимание:** В данном скрипте поиск справочника среди имеющихся в МИС осуществляется по `REFDIC.REFCODE = :OID`
(в новых версиях, вероятно, стоит использовать `REFDIC.OID = :OID`)
Загрузка подразумевается через `SyncManager.exe` в режиме `Справочнике FHIR (API)`
из Сервиса Терминологии РЕГИЗ:
@atronah
atronah / check_possibility_of_flights_between_airports.sql
Last active Oct 5, 2019
PostgreSQL query for calculating possibility of flights between airports
View check_possibility_of_flights_between_airports.sql
select
-- `distinct on` statement is required to exclude duplicate lines with return flights
distinct on (least(depart.arport_code, arrival.airport_code)
, greatest(depart.arport_code, arrival.airport_code))
depart.arport_name
, arrival.airport_name
, 6371 -- Earth radius
* acos(-- sin(latitude_a) * sin(latitude_b)
sin(depart.coordinates[0]) * sin(arriv.coordinates[1])
-- cos(latitude_a) * cos(latitude_b)
@atronah
atronah / mysql.func.getDamerauLevenshtein.sql
Last active Sep 11, 2018
MySQL function for calculating Domerau-Levenshtein distance
View mysql.func.getDamerauLevenshtein.sql
CREATE FUNCTION `getDamerauLevenshtein`(s1 VARCHAR(128) CHARSET utf8, s2 VARCHAR(128) CHARSET utf8) RETURNS int(11)
DETERMINISTIC
COMMENT 'Returns Domerau-Levenshtein distance, i.e. minimal number of char operations (cut, paste, replace, transposition) for two string'
BEGIN
DECLARE resultDistance INT(11);
DECLARE currRow INT; -- current row of matrix (0 .. LENGTH(s1))
DECLARE currColumn INT; -- current column of matrix (0 .. LENGTH(s2))
DECLARE s1Length INT; -- first\left\s1 string length
DECLARE s2Length INT; -- second\right\s2 string length
DECLARE replaceDistance INT; -- current distance for replace operation
View keybase.md

Keybase proof

I hereby claim:

  • I am atronah on github.
  • I am atronah (https://keybase.io/atronah) on keybase.
  • I have a public key whose fingerprint is D577 343D 0498 7C9D BD1E 3957 4FBE B649 04E9 F6EE

To claim this, I am signing this object: